1 #coding:utf-8
2 #Author:Mr Zhi
3 count = 0 #为累计密码输入次数,赋值初始值
4 User_info_file = open("User_info",'r',encoding="utf-8") #打开用户信息文件
5 Locked_user_file = open("Locked_user",'r+',encoding="utf-8") #打开锁定用户文件
6 User_info_line = eval(User_info_file.read()) #把用户信息文件内容转换为字典
7 Locked_user_line = Locked_user_file.read() #读取锁定的用户文件
8 def close_file(): #经常重复的代码,定义一个函数
9 Locked_user_file.close() #关闭文件
10 User_info_file.close() #关闭文件
11 exit() #结束程序
12 while True: #开始循环
13 username = input("请输入你的用户名:") #输入用户名
14 password = input("请输入你的密码:") #输入密码
15 if len(username) == 0 or len(password) == 0: #判断用户名或密码是否为空
16 print("你输入用户名或者密码为空!") #提示用户名或密码为空
17 close_file() #执行自定义函数结束程序
18 if username in User_info_line.keys() and username not in Locked_user_line: #判断用户名是否在用户信息文件和锁定用户文件中
19 if password == User_info_line["{user}".format(user=username)]: #判断输入的密码是否对应用户的密码
20 print("欢迎 {user} 成功登陆....".format(user=username)) #打印出登陆的信息
21 close_file() #执行自定义函数
22 while count < 3: #循环三次
23 count += 1 #累加次数
24 password = input("密码错误,你剩下{num}次输入密码的机会:".format(num = 4 - count)) #重新输入密码并提示剩下次数
25 if len(password) == 0: #判断密码是否为空
26 print("密码不能为空") #提示密码不能为空
27 count -= 1 #不累加输入次数
28 if password == User_info_line.values(): #判断密码是否正确
29 print("欢迎 {user} 用户成功登陆....".format(user=username)) #输出登陆成功信息
30 close_file() #执行自定义函数
31 if count == 3: #判断累计的次数是否三次
32 Locked_user_file.write(username+'\n') #把用户名追加到锁定用户文件中
33 print("超过次数,你的用户{user}被锁定".format(user=username)) #输出锁定用户的提示
34 close_file() #执行自定义函数
35 elif username in Locked_user_line: #判断用户名是否在锁定用户文件中
36 print("你的用户{user}已经被锁定".format(user=username)) #输出锁定用户的提示
37 close_file() #执行自定义函数
38 else:
39 print("用户名不存在!") #输出用户不存在的提示
40 close_file() #执行自定义函数