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