Python練習(第一周): 編寫登陸認證程序
阿新 • • 發佈:2018-01-14
用戶鎖定 用戶輸入 文件 提示 print 基礎 else 再次 分享圖片
基礎需求: 讓用戶輸入用戶名密碼 認證成功後顯示歡迎信息 輸錯三次後退出程序 升級需求: 可以支持多個用戶登錄 (提示,通過列表存多個賬戶信息) 用戶3次認證失敗後,退出程序,再次啟動程序嘗試登錄時,還是鎖定狀態(提示:需把用戶鎖定的狀態存到文件裏)
代碼:
# 通過列表存儲用戶名,密碼 logon_authentication = False user_info = [[‘li‘, ‘123‘], [‘yong‘, ‘234‘], [‘liyong‘, ‘345‘]] logon_num = 3 # 取鎖定名單 lock_file = open(‘lock‘, ‘r‘, encoding=‘View Codeutf-8‘) lock_list = lock_file.read() lock_file.close() # 首次輸入用戶密碼 user_name = input(‘please input your name :‘) user_pass = input(‘please input your password :‘) # 循環判斷用戶密碼 for user_item in user_info: if user_name == user_item[0]: # 判斷是否在鎖定名單 if user_name in lock_list:print(‘該用戶已被鎖定!‘) break # 驗證用戶密碼,重新輸入密碼須在限制次數內 for i in range(logon_num - 1): if user_pass == user_item[1]: print(‘登陸成功‘) # 標誌位驗證登錄結果及跳出多層循環 logon_authentication = True break else: logon_num= logon_num - 1 print(‘密碼錯誤,您還有‘, logon_num, ‘次輸入密碼的機會‘) user_pass = input(‘please again input your password :‘) else: print(‘超過三次,用戶已鎖定!‘) lock_file = open(‘lock‘, ‘a‘, encoding=‘utf-8‘) lock_list = lock_file.write(user_name) lock_file.close() break # 判斷跳出一級循環 if logon_authentication: break else: print(‘沒有此用戶‘) # 登錄成功,進入下一級頁面 if logon_authentication: print(‘歡迎來到{user}的空間‘.format(user=user_name))
Python練習(第一周): 編寫登陸認證程序