實現三次登入
阿新 • • 發佈:2020-07-16
三次登入
寫一個函式完成三次登入,三次不成功則登入失敗,失敗返回False,登陸成功返回True
使用者的使用者名稱和密碼儲存在檔案中,該檔案包含多個使用者名稱以及對應的密碼,
形式為:name|password,每個人佔用檔案的一行
實現程式碼:
def login(): flag = 0 # 用於三次迴圈 while 1: flag += 1 # 進行一次,flag加一次 if flag > 3: print("\n登入已失敗三次,結束!") return False print(f"\n正在進行第 {flag} 次登入:") user_name = input("請輸入使用者: ").strip() # 避免使用者多輸入空格 user_pwd = input("請輸入密碼: ").strip() userDict = {} # 使用者字典 f = open('users.txt', mode='r') for user in f.readlines(): user = user.strip() # 去掉每行後面的換行符 # user.split('|')返回的是一個列表['admin', 'admin_pwd'] user = user.split('|') userDict[user[0]] = user[1] f.close() # userDict:{'admin': 'admin_pwd', 'Tom': 'Tom_pwd', 'Jack': 'Jack_pwd'} # userDict.get(user_name) 不存在返回None,存在則返回的是鍵對應的值(密碼) if user_pwd != userDict.get(user_name): print("使用者名稱或密碼輸入錯誤!") continue # 進行下一次登入操作 else: # 成功登入 return True login() # 呼叫函式
測試結果1:
正在進行第 1 次登入:
請輸入使用者: admin
請輸入密碼: admin_pwd
True
測試結果2:
正在進行第 1 次登入:
請輸入使用者: ad
請輸入密碼: ad
使用者名稱或密碼輸入錯誤!
正在進行第 2 次登入:
請輸入使用者: a
請輸入密碼: ss
使用者名稱或密碼輸入錯誤!
正在進行第 3 次登入:
請輸入使用者: admin
請輸入密碼: 123
使用者名稱或密碼輸入錯誤!
登入已失敗三次,結束!
False