要求
輸入用戶名密碼正確,提示登錄成功,
輸入三次密碼錯誤,鎖定賬戶。
實現原理:
創建兩個文件accout,accout_lock
accout記錄用戶名,密碼
accout
root 1qazxsw2 wxp qwerty osadmin 123456
accout_lock記錄鎖定用戶,默認為空
代碼:
#!/use/bin/env python #-*- coding:utf-8 -*- import sys,os import getpass #os.system('clear') i = 0 while i < 3: name = input("請輸入用戶名:") lock_file = open('account_lock','r+') lock_list = lock_file.readlines() for lock_line in lock_list: lock_line = lock_line.strip('\n') if name == lock_line: sys.exit('用戶 %s 已經被鎖定,退出' % (name)) user_file = open('account','r') 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: #passwd = getpass.getpass('請輸入密碼:') passwd = input('請輸入密碼:') if passwd == password: print("用戶%s登錄成功" % name) sys.exit(0) else: if j != 2: print("用戶 %s 密碼錯誤,請重新輸入,還有 %d 次機會" % (name,3 - j )) j += 1 else: lock_file.write(name + '\n') sys.exit('用戶 %s 達到最大登錄次數,將被鎖定並退出' % name) else: pass else: if i != 2: print('用戶名%s 不存在,請重新輸入,還有 %d 次機會' % (name,3 - i)) i += 1 else: sys.exit("用戶 %s 不存在,退出" % name) lock_file.close() user_file.close()