您好,登錄后才能下訂單哦!
利用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用戶名:{},密碼:{}".format(username, 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)
看完上述內容,你們掌握利用python編寫一個登錄與注冊功能的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。