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