標籤:python 掉分行符號 col utf-8 lis pytho lin 狀態 匹配
編寫登陸介面
基礎需求:
- 讓使用者輸入使用者名稱密碼
- 認證成功後顯示歡迎資訊
- 輸錯三次後退出程式
升級需求:
- 可以支援多個使用者登入 (提示,通過列表存多個賬戶資訊)
- 使用者3次認證失敗後,退出程式,再次啟動程式嘗試登入時,還是鎖定狀態(提示:需把使用者鎖定的狀態存到檔案裡)
#!/usr/bin/python3.6#_*_ coding:utf-8 _*_import sys,os,getpassos.system(‘cls‘)i = 0while i < 3: #只要使用者登入異常不超過3次就不斷迴圈 name = input("請輸入使用者名稱:") lock_file = open(‘account_lock.txt‘,‘r+‘) #當使用者輸入使用者名稱後,開啟LOCK 檔案 以檢查是否此使用者已經LOCK了 lock_list = lock_file.readlines() for lock_line in lock_list: #迴圈LOCK檔案 lock_line = lock_line.strip(‘\n‘) #去掉分行符號 if name == lock_line: #如果LOCK了就直接退出 sys.exit(‘使用者 %s 已經被鎖定,退出‘ % name) user_file = open(‘account.txt‘,‘rb‘) #開啟帳號檔案 user_list = user_file.readlines() for user_line in user_list: #對帳號檔案進行遍曆 (user,password) = user_line.strip(‘\n‘).split() #分別擷取帳號和密碼資訊 if name == user: #如使用者名稱正常匹配 j = 0 while j < 3: #只要使用者密碼異常不超過3次就不斷迴圈 passwd = getpass.getpass(‘請輸入密碼:‘) #輸入隱藏密碼 if passwd == password: #密碼正確,提示歡迎登入 print(‘歡迎登入管理平台,使用者%s‘ % name) sys.exit(0) #正常退出 else: if j != 2: #j=2時,是最後一次機會,不用在提示還剩餘0次機會了 print(‘使用者 %s 密碼錯誤,請重新輸入,還有 %d 次機會‘ % (name,2 - j)) j += 1 #密碼輸入錯誤後,迴圈值增加1 else: lock_file.write(name + ‘\n‘) #密碼輸入三次錯誤後,將該使用者追加到LOCK檔案 sys.exit(‘使用者 %s 達到最大登入次數,將被鎖定並退出‘ % name) else: pass #當使用者沒匹配時,跳過並繼續迴圈 else: if i != 2: #i=2時,是最後一次機會,不用在提示還剩餘0次機會了 print(‘使用者 %s 不存在,請重新輸入,還有 %d 次機會‘ % (name,2 - i)) i += 1 #當使用者輸入錯誤時,迴圈值增加1else: sys.exit(‘使用者 %s 不存在,退出‘ % name) #使用者輸入三次錯誤後,異常退出 lock_file.close() #關閉LOCK檔案user_file.close() #關閉帳號檔案View Code
python開發基礎例題