用戶註冊&登錄失敗

# 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

相關文章
相關標籤/搜索