day08作业
用户输入用户名、密码
将用户输入的内容按照固定的格式,比如:egon: 123,存入文件
可以往一个文件中重复注册新的用户名和密码
附加:
1、对输入的用户名进行合法性监测,不能以数字开头,且如果输入的用户名已存在于文件中则要求用户重新输入
2、对输入的密码进行合法性监测,密码的长度至少6位,并且不能包含特殊字符 * &$
1 while True: 2 name = input('请输入用户名').strip() 3 if name[0].isdigit(): 4 print('包含数字开头请重新输入用户') 5 continue 6 with open(r'db1.txt',mode='rt',encoding='utf-8') as read_f,\ 7 open(r'db1.txt',mode='at',encoding='utf-8') as write_f: 8 for line in read_f: 9 u,k = line.strip('\n').split(':') 10 if name == u: 11 print('用户名已存在') 12 break 13 else: 14 pwd = input('请输入密码:').strip() 15 if len(pwd)<6 or '*'in pwd or '&'in pwd or '$'in pwd: 16 print('密码错误') 17 continue 18 else: 19 write_f.write('{}:{}\n'.format(name,pwd)) 20 print('注册成功') 21 break
二、实现用户验证功能更:
思路:
用户输入账号密码,从文件中读出账号密码,与用户输入的进行比对
附加:新建黑名单文件,同一个账号名输错三次则将用户名写入黑名单文件中,如果用户输入的用户名存在于黑名单中则直接退出
1 tag = True 2 while tag: 3 name = input('请输入账户:').strip() 4 # pwd = input('请输入密码:').strip() 5 with open(r'hmd.txt',mode='rt',encoding='utf-8') as rhmd: 6 for line in rhmd: 7 hmd=line.strip('\n') 8 if name ==hmd: 9 print('黑名单') 10 tag = False 11 break 12 if not tag: 13 continue 14 with open(r'db.txt',mode='r',encoding='utf-8') as rf: 15 for line in rf: 16 user,psward = line.strip('\n').split(':') 17 if name == user: 18 break 19 else : 20 print('用户名不存在') 21 continue 22 count =0 23 while count<3: 24 pwd = input('请输入密码:').strip() 25 if pwd == psward: 26 print('登陆成功') 27 tag = False 28 break 29 else: 30 print('请重新输入密码') 31 count+=1 32 continue 33 else: 34 with open('hmd.txt',mode='at',encoding='utf-8') as hmd: 35 hmd.write('%s\n'%user) 36 tag =False 37 break