需求說明:
用戶登錄,對密碼進行三次校驗,三次均失敗后,將鎖定用戶名,不允許登錄。
解決方案:
1、明確可成功登錄的用戶名和密碼;
2、用戶黑名單,三次登錄失敗后,將用戶名寫入黑名單;
3、檢測黑名單的內容,如果與當前登錄名一致,則不允許繼續輸入密碼,直接提示用戶已鎖定。
代碼實現:
1 # -*- coding:utf-8 -*- 2 3 #登錄三次鎖定用戶 4 5 #用於計數(循環三次的判斷) 6 count = 0 7 8 #真實用戶名和密碼 9 real_username = "iamxxx" 10 real_password = "123qwe" 11 12 #讀取黑名單的內容 13 f = open('black_user','r') 14 lock_file = f.read() 15 f.close() 16 17 username = raw_input("請輸入用戶名:") 18 19 #判斷輸入的用戶名是否在黑名單內,如果在則不允許繼續輸入密碼 20 for i in range(1): 21 if lock_file == username: 22 print("對不起,您的用戶名已鎖定,暫時不允許使用!") 23 exit() 24 else: 25 continue 26 27 #嘗試輸入密碼,並將輸入次數進行計數 28 for i in range(3): 29 password = raw_input("請輸入密碼:") 30 if password == real_password: 31 print "登錄成功!" 32 break 33 else: 34 print("登錄失敗...") 35 count += 1 36 37 #如果錯誤密碼輸入了三次,則提示用戶名鎖定,並將用戶名放入黑名單中 38 if count == 3: 39 print("對不起,您輸入的密碼錯誤次數已達3次,將鎖定您的賬戶!") 40 f = open('black_user','w') 41 f.write('%s'%username) 42 f.close()
執行結果:
場景1:輸入正確 請輸入用戶名:iamxxx 請輸入密碼:123qwe 登錄成功! 場景2:輸入錯誤3次 請輸入用戶名:iamxxx 請輸入密碼:1 登錄失敗... 請輸入密碼:1 登錄失敗... 請輸入密碼:1 登錄失敗... 對不起,您輸入的密碼錯誤次數已達3次,將鎖定您的賬戶! 再次執行: 請輸入用戶名:iamxxx 對不起,您的用戶名已鎖定,暫時不允許使用!