# 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