用python 實現模擬注冊和登錄的程序:用戶信息最終以字典的格式儲存在一個txt文件里,具體實現如下:
users.txt里用戶字典格式如下:
1 { 2 'name': {'password': '111111', 'role': '1'}, 3 'name2': {'password': '222222', 'role': '1'}, 4 'name3': {'password': '222222', 'role': '1'} 5 }
1 # 注冊 2 f = open('users.txt', 'a+', encoding='utf-8') 3 f.seek(0) 4 user_info = eval(f.read())# 字符串轉字典 5 i =0 6 while i<3: 7 i += 1 8 uname = input("請輸入用戶名:").strip() 9 upass = input("請輸入密碼:").strip() 10 passC = input("請確認密碼:").strip() 11 if not uname or not upass or not passC: 12 print("注冊失敗,用戶名或密碼不能為空") 13 continue 14 if upass != passC: 15 print("注冊失敗,兩次輸入密碼不一致") 16 continue 17 if uname in user_info: 18 print("注冊失敗,用戶名已存在") 19 continue 20 print("恭喜你,注冊成功!") 21 user_info[uname] ={'password':upass,'role':'1'} 22 f.seek(0) 23 f.truncate() 24 f.write(str(user_info)) 25 else: 26 print("sorry,register over 3 times bye-bye!") 27 f.close() 28 29 # 登錄 30 fr = open('users.txt', 'r') 31 fr.seek(0) 32 user_info = eval(fr.read()) 33 j = 0 34 while j<3: 35 j +=1 36 uname = input("請輸入用戶名:\n").strip() 37 upass = input("請輸入密碼:\n").strip() 38 if not uname: 39 print("用戶名不能為空") 40 continue 41 if not upass: 42 print("密碼不能為空") 43 continue 44 if uname not in user_info: 45 print("用戶名不存在") 46 continue 47 if upass != user_info[uname]['password']: 48 print("密碼錯誤") 49 continue 50 print("恭喜你,登錄成功!") 51 else: 52 print("sorry! login over 3 times bye-bye! ") 53 f.close()
運行結果: