# n_and_p = [{'dog1':'123'},{'dog2':'234'},{'dog3':'345'},{'dog4':'456'},{'dog5':'567'},{'dog6':'678'},{'dog7':'789'},] # with open('E:/dog.txt',mode='w+',encoding='utf-8') as f0: # for i in n_and_p: # for a, b in i.items(): # f0.write('用户名:' + a + '\t' + '密码:' + b + '\n') # 用户名与密码已在文件夹中生成 line1 = [] flag = 1 with open('E:/dog.txt',mode='r+',encoding='utf-8') as f: lines = f.readlines() for line in lines: line0 = line.strip('用户名:'+'密码:'+'\n') line1 = line0.split('\t') i = 0 if flag == 0: break while i < 3: if flag == 0: break name0 = input("请输入用户名:") password0 = input("请输入密码:") if name0 == line1[0] and password0 == line1[1]: print("登录成功!请稍后") flag = 0 elif name0 == line1[0] and password0 != line1[1]: i += 1 if i == 3: print("帐户密码不正确!!已退出系统") flag = 0 else: print("输入错误,请从新输入!!") print("剩余%s次机会" % (3 - i)) else: # 没有就注册 ask = input('您尚未注册,是否注册(Y or N):') if ask.upper() == 'Y': name1 = input('请输入注册用户名:') password1 = input('请输入注册密码:') f.write('用户名:' + name1 + '\t' + '密码:' + password1 + '\n') # 读写 print('已登陆') flag = 0 elif ask.upper() == 'N': print('Thanks') flag = 0 else: print('输入错误,系统退出') flag = 0
结果为:请输入用户名:dog1ide
请输入密码:12456 输入错误,请从新输入!! 剩余2次机会 请输入用户名:dog1 请输入密码:45678 输入错误,请从新输入!! 剩余1次机会 请输入用户名:dog1 请输入密码:12345678 帐户密码不正确!!
请输入用户名:11 请输入密码:22 您尚未注册,是否注册(Y or N):y 请输入注册用户名:33333 请输入注册密码:5555 已登陆
请输入用户名:11 请输入密码:22 您尚未注册,是否注册(Y or N):n Thanks
不足之处:文件的操做r+ ---> 先读后写,能够改进-->formate格式orm
可取之处:break只能跳出一层循环,仍是要用到flag来跳出总体循环。ip
文件是txt,里面的内容:utf-8
用户名:dog1 密码:123
用户名:dog2 密码:234
用户名:dog3 密码:345
用户名:dog4 密码:456
用户名:dog5 密码:567
用户名:dog6 密码:678
用户名:dog7 密码:789
用户名:444 密码:666
用户名:11 密码:4444444
用户名:33333 密码:5555
用户名:33 密码:33333input
初次尝试,请多多批评指正!it