需求:
基础需求:
让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序
升级需求:
可以支持多个用户登录 (提示,通过列表存多个账户信息) 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
基础需求:代码如下
1 account = 'zwj' 2 passwd = '123abc' 3 4 count = 0 5 while count < 3 : 6 account_input = input('请输入您的用户名>>').strip() 7 passwd_input = input('请输入您的密码>>').strip() 8 9 if account == account_input and passwd == passwd_input : 10 print('----welcome to login----') 11 break 12 else: 13 count += 1
升级需求:代码如下
1 import os,pickle 2 3 user_msg = {'Tom':'123','Jack':'456','Rose':'789'} 4 5 if not os.path.isfile('lock_file'): # 若文件不存在,就创建一个 6 f = open('lock_file', 'wb') 7 lock_msg = {'Tom': 0, 'Jack': 0, 'Rose': 0} 8 pickle.dump(lock_msg, f) 9 f.close() 10 11 while True: 12 f = open('lock_file','rb+') 13 lock_msg = pickle.load(f) 14 15 in_account = input('请输入用户名>>').strip() 16 in_passwd = input('请输入密码>>').strip() 17 18 if in_account not in lock_msg: #用户名错误不计入锁定次数范围 19 print('账号不存在,请重新输入') 20 f.close() 21 continue 22 elif lock_msg[in_account] == 3: 23 print('用户名已锁定') 24 f.close() 25 break 26 elif in_passwd == user_msg[in_account]: 27 print('欢迎登陆',in_account) 28 lock_msg[in_account] = 0 #刷新输错次数 29 f.seek(0) 30 pickle.dump(lock_msg,f) 31 f.close() 32 break 33 else: 34 print('密码错误') 35 lock_msg[in_account] += 1 36 print('%s 次错误' %lock_msg[in_account]) 37 f.seek(0) 38 pickle.dump(lock_msg,f) 39 f.close()
ps:
这就搞定啦!如果有不同想法,欢迎在评论中写出来。