python實現登入與註冊系統
阿新 • • 發佈:2020-11-30
本文例項為大家分享了python實現登入與註冊系統的具體程式碼,供大家參考,具體內容如下
實現功能
1.呼叫文字檔案裡的使用者資訊
2.可以將註冊資訊儲存在文字檔案裡
3.實現了密碼格式的限制
具體使用者資訊將如下格式儲存在txt文字檔案下
轉換後便於程式碼利用的格式(列表中巢狀字典)
具體程式碼如下:
#-*- coding=utf8 -*- # @author:sololi # date: 2020/11/3 # 檔案說明 : import sys def register(username,password):#登入功能,且與儲存使用者表的文字檔案進行比較 #驗證使用者名稱 shuju=readfile() jg1 = 0 i = 0 while (i < len(shuju)): if (username == shuju[i]["使用者名稱"]): print("使用者名稱正確") jg1 = 1 break i += 1 # 使用者名稱錯誤將不再驗證密碼 if (jg1 != 1): print("使用者名稱錯誤") # 驗證密碼 if (jg1 == 1): jg2 = 0 i = 0 while (i < len(shuju)): if (password == shuju[i]["密碼"]): print("密碼正確") jg2 = 1 break i += 1 if (jg2 != 1): print("密碼錯誤") def logon(username):#註冊功能,且以正確格式存入文字檔案 shuju=readfile() jg3 = 0 i = 0 while (i < len(shuju)): if (username == shuju[i]["使用者名稱"]): print("使用者名稱已經存在") jg3 = 1 break i += 1 if(jg3 == 0): while True: password = input("請輸入註冊的密碼(密碼不能小於6位,且不能為純數字)") if (str.isdigit(password)==1) or (len(password)<6): print("密碼格式錯誤") else: break passwordagain=input("請再次確認密碼") while True: if(password==passwordagain): break else: print("兩次密碼不一致") passwordagain = input("請再次確認密碼") # 將註冊的使用者資訊儲存到文字檔案中 f = open("data",mode='a+',encoding="utf8") if shuju == []: f.write("使用者名稱:{},密碼:{}".format(username,password)) if shuju != []: f.write("\n使用者名稱:{},password)) print("註冊成功") f.close() def readfile():#將資料轉換成列表字典形式,放在data.txt中便於後面登入與註冊存放資料 f = open('data',"r+",encoding="utf8") shuju = [] b = [] aa = {} for line in f.readlines(): line = line.strip('\n') a = line.split(' ') i = 0 while i < len(a): b = a[i].split(',') i += 1 j = 0 while j < len(b): if b == " ": break c = b[j].split(':',1) aa[c[0]] = c[1] i += 1 j += 1 shuju.append(aa.copy()) # copy是為了防止新增是資料型別不同出錯 f.close() return shuju while True: choice=input("登入輸入1,註冊輸入2,其他任意鍵退出") if choice=="1": id=input("輸入您的賬號") pw=input("輸入您的密碼") register(id,pw) break if choice=="2": id=input("輸入你註冊的賬號") logon(id) continue else: print("退出成功") sys.exit(0)
初學者作品,有錯請指教
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。