1.要求 1)輸入用戶名密碼 2)認證成功後顯示歡迎信息 3)輸錯三次後鎖定2.需求分析 1)用戶信息存儲在文件中(login/config/user_login.txt) 2)用戶輸入用戶名和密碼 3)判斷用戶名是否存在,存在則繼續,不存在則提示繼續輸入 4)判斷輸入的用戶名是否已經被鎖定,如果已... ...
1.要求
1)輸入用戶名密碼
2)認證成功後顯示歡迎信息
3)輸錯三次後鎖定
2.需求分析
1)用戶信息存儲在文件中(login/config/user_login.txt)
2)用戶輸入用戶名和密碼
3)判斷用戶名是否存在,存在則繼續,不存在則提示繼續輸入
4)判斷輸入的用戶名是否已經被鎖定,如果已鎖定則退出程式,否則繼續
5)匹配文件中的用戶信息
6)如果匹配則列印出歡迎信息
7)如果輸入3次密碼錯誤,則鎖定該用戶名(login/config/name_lock.txt)
3.測試用戶
bigberg:123abc
lc:123456
smallberg:111111
root:12345
dinasor:12321
1 # -*- coding: UTF-8 -*- 2 #Author:Bigberg 3 4 #定義一個迴圈計數 5 count = 0 6 #定義一個字典存儲用戶名和密碼 7 names={} 8 9 #定義一個列表存儲用戶名 10 name_exit = [] 11 12 #輸入用戶名 13 username = input("username:") 14 15 #判斷輸入的用戶的用戶是否在用戶名單中 16 with open("../config/name_login.txt",'r') as f: 17 while True: 18 line = f.readline().strip() 19 if not line: 20 break 21 else: 22 name = line.split(':')[0] 23 passwd = line.split(':')[1] 24 names[name] = passwd 25 for key in names: 26 name_exit.append(key) 27 #判斷用戶名是否正確,不正確則繼續輸入 28 while username not in name_exit: 29 print("The account is not exit.Check it again.") 30 username = input("username:") 31 else: 32 # 讀取鎖定文件中的內容 33 with open("../config/name_lock.txt", "r") as f: 34 lock_name = f.read() 35 36 # 判斷用戶名是否在鎖定文件中,如果在就退出程式 37 if username == lock_name: 38 print("Sorry.Your account has been locked.") 39 exit() 40 else: 41 # 3次輸入密碼的機會 42 while count < 3: 43 passwd_input = input("password:") 44 45 # 判斷用戶名和密碼是否有效 46 if passwd_input == names[username]: 47 print("Welcome!", username) 48 break 49 else: 50 print("Error,please try again.") 51 52 count += 1 53 54 # 如果3次輸入密碼錯誤,則將用戶名添加到鎖定文件 55 if count == 3: 56 with open("../config/name_lock.txt", "w") as f: 57 f.write("%s" % username) 58 print("You have tried 3 times,and your account will be locked")