用户注册&登录失败

# 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

相关文章
相关标签/搜索