作業需求:
1.輸入用戶名密碼
2.認證成功后顯示歡迎信息
3.輸錯三次后鎖定
實現思路:
1.判斷用戶是否在黑名單,如果在黑名單提示賬號鎖定。
2.判斷用戶是否存在,如果不存在提示賬號不存在。
3.判斷賬號密碼是否正確,如果正確登錄進去。如果不正確有三次輸入密碼機會。三次全部輸錯,賬號鎖定。
新建兩個文件 account.txt和account_lock.txt ,在account中輸入用戶名密碼 aaa 123
1 # Author:oliver 2 import sys,os 3 count = 0 4 name_list = [] 5 while count < 3: 6 name = input("請輸入用戶名:") 7 lock_file = open('account_lock.txt','r+') 8 lock_list = lock_file.readlines() 9 10 for lock_line in lock_list: 11 lock_line = lock_line.strip('\n') 12 if name == lock_line: 13 sys.exit('用戶 %s 已經被鎖定,請聯系管理員解鎖.' % name) 14 user_file = open('account.txt','r') 15 user_list = user_file.readlines() 16 for user_line in user_list: 17 (user,password) = user_line.strip('\n').split() 18 name_list.append(user_line) 19 print("--------", name_list) 20 if name == user: 21 i = 0 22 while i < 3: 23 passwd = input('請輸入密碼:') 24 if passwd == password: 25 print('歡迎 %s 登錄' % name) 26 sys.exit(0) 27 else: 28 if i < 2: 29 print('用戶 %s 密碼錯誤,請重新輸入,還有 %d 次機會.' % (name,2 - i)) 30 i += 1 31 else: 32 lock_file.write(name + '\n') 33 sys.exit('用戶 %s 輸錯密碼三次,用戶將被鎖定並退出,請聯系管理員解鎖.' % name) 34 else: 35 pass 36 else: 37 if count < 2: 38 print('用戶 %s 不存在,請重新輸入,還有 %d 次機會' % (name,2 - count)) 39 count += 1 40 else: 41 sys.exit('用戶 %s 不存在,退出' % name) 42 43 lock_file.close() 44 user_file.close()