1 #expandtion.txt文件里保存了账号和密码,这里定义一个函数,以dict的形式提取数据,用于注册时候判断
2 def get_user_pass(file):
3 user_passwd = {}
4 with open(file, 'r') as f:
5 for d in f:
6 for kv in [d.strip().split(',')]:
7 user_passwd[kv[0]]=kv[1]
8 return user_passwd
9 # 定义一个函数,判断输入的参数是否为空,为空的话继续输入,直到输入不为空为止
10 def input_data(data_type,get_data):
11 while True:
12 get_data=input('请输入%s:'%data_type)
13 if len(get_data)==0:
14 continue
15 else:
16 break
17 return get_data
18 user_pass =get_user_pass('expandtion.txt')
19 while True:
20 username=input_data('注册账号','name')
21 # 判断注册账号是否存在,已存在的话持续循环
22 if username in user_pass.keys():
23 print('您输入的账号已存在,请重新输入:')
24 continue
25 else:
26 password = input_data('账号密码', 'name')
27 confirm_pass=input_data('确认密码','name')
28 # 判断确认密码和密码是否一致
29 if password!=confirm_pass:
30 print('您输入的确认密码与密码不一致,请重新输入:')
31 continue
32 else:
33 print('恭喜您注册成功,请记住您的注册信息:\n您的账号是:%s\n您的密码是:%s'%(username,password))
34 break
35 #将新注册的用户写入expandtion.txt保存
36 with open('expandtion.txt', 'a') as f:
37 f.write(username+','+password+'\n')
38 #因为刚才有注册,所以要重新调用文件读取函数获取账号信息
39 user_pass =get_user_pass('expandtion.txt')
40 #设置i用来记录登录信息输入错误次数啊
41 i=1
42 while i<4:
43 print('第%s次登录,登录超过三次仍然失败,将不允许登录,请三思!'%i)
44 i+= 1
45 get_user=input('please input username:')
46 get_pass=input('please input password:')
47 #判断账号是否存在expandtion.txt文件中
48 if get_user not in user_pass.keys():
49 print('账号或密码有误,请重新输入!')
50 continue
51 else:
52 #根据账号获取到该账号的密码
53 password = user_pass[get_user]
54 # 判断密码是否和对应的账号匹配
55 if get_pass!=password:
56 print('账号或密码有误,请重新输入!')
57 continue
58 else:
59 print('欢迎%s登录!'%get_user)
60 break
61 #登录超过三次时给出提示
62 else:
63 print('账号或密码错误次数已超过三次,请明年再来登录!')