1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # Author:Caesar yang 4 5 import getpass #導入模塊隱藏密碼 6 count = 0 #定義計數器 7 while count < 3: 8 name = i ...
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # Author:Caesar yang 4 5 import getpass #導入模塊隱藏密碼 6 count = 0 #定義計數器 7 while count < 3: 8 name = input('username:') #輸入用戶名 9 with open('lock_file.txt','r+') as lock_list: #讀取用戶名鎖定文件 10 for lock_line in lock_list: #迴圈文件內容 11 lock_line = lock_line.strip('\n') #去掉回車 12 if name == lock_line: #將用戶名與文件內容比較,如果相同, 13 exit('用戶%s已鎖定,自動退出程式'%name) #退出程式,如果不同,往下執行 14 with open('username.txt') as user_list: #讀取用戶名文件 15 for user_line in user_list: #迴圈文件內容 16 (username,password) = user_line.strip('\n').split() #由於用戶名與密碼在一塊,需要將用戶名與密碼拆分開分別進行比較 17 if name == username: #如果用戶名相同,往下執行 18 j = 0 #定義一個新的計數器 19 while j < 3: 20 passwd = getpass.getpass('請輸入密碼:') #輸入密碼 21 if passwd == password: #如果密碼正確 22 print('歡迎用戶%s登陸!'%name) #列印標語 23 exit() #正常結束 24 else: #如果密碼錯誤 25 if j != 2: #這裡因為j=2以後就直接結束程式了所以直接跳過0次機會 26 print('密碼輸入錯誤!請重新輸入!你還有%s次機會:'%(2-j)) 27 j += 1 #j+1以後繼續while迴圈 28 else: #j=3時 29 lock_list.write(name + '\n' ) #將用戶名寫入鎖定文件 30 exit('用戶%s達到最大錯誤次數,已鎖定賬號!'%name) 31 else: #如果用戶名不同往下執行 32 pass #跳過此迴圈 33 else: #用戶名不同往下執行 34 if count != 2: #同樣的道理,迴圈到第三次如果依舊錯誤將直接異常結束程式 35 print('用戶%s不存在,請重新輸入,還有%s次機會:'%(name,2-count)) 36 count += 1 #count+1以後繼續for迴圈 37 else: #異常結束 38 exit('用戶%s不存在,自動退出程式!'%name)用戶登錄介面