1 # 需求:通过文件中记录的"用户名/密码/锁定次数",开发一个用户登录模块(包含知识点:循环/字典/列表/文件操作)
2 # 1/打开用户名密码的文件,读取文件中的用户信息,关闭文件
3 file = open("userinfo.txt", "r",encoding="utf-8")
4 user_list = file.readlines()
5 print(user_list)
6 file.close()
7
8 # 2/先定义一个空字典,然后在文件中循环遍历每组数据获取用户名和密码,输入次数为键值对来存储在字典中
9 user_dict = {}
10 for user_item in user_list:
11 user_str = user_item.split(";") # 以文本中的;为分隔符,把文件存在
12 #print(user_str) # 获取每组用户名和密码。输入次数
13
14 #print(user_str[0]) #获取每组中的用户名
15 #print(user_str[1]) #获取每组中的密码
16 #print(user_str[2].strip()) #获取每组数据中的密码的输入次数0
17
18 user_dict[user_str[0]] = {"pwd": user_str[1], "times": int(user_str[2].strip())}
19
20 #print(user_dict)
21 #print(user_dict.keys())
22 # print user_dict.values()
23 # print user_dict.items()
24
25 # 3/使用循环包含所有的场景:用户名不存在/密码输入错误/密码输入错误三次,锁定/用户名和密码输入正确成功登录
26
27 while True:
28 username = input("请输入用户名:")
29 if username not in user_dict.keys():
30 print("您输入的用户名不存在,请重新输入!")
31 else:
32 password = input("请输入密码:")
33
34 if user_dict[username]['times'] == 2:
35 print("您的账户已冻结,请联系中*银行!")
36 break
37 else:
38 if password == user_dict[username]["pwd"]:
39 user_dict[username]['times'] = 0
40 print("欢迎登录,%s! " % username)
41 break
42 else:
43 user_dict[username]["times"] += 1