python作业设计:输入用户名密码,认证成功后显示欢迎信息,输错三次后锁定

作业需求:
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(' ') 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(' ').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 + ' ') 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()