1defmenu():2#
使用者互動介面
3 user_name = input("
請輸入在使用者名稱:")
4 password = input("
請輸入密碼:")
5return user_name,password #
以元組形式返回值
6'''
7alex1 1111
8alex2 2222
9alex3 3333
10'''
11def
write():12#
將使用者名稱、密碼和登入次數在檔案中寫成字典的格式
13 user_name_password= {}#
設定乙個空字典裝使用者名稱、密碼和登入次數
14 with open("
test
", encoding="
utf8
") as date, open("
test2
", encoding="
utf8
", mode="w"
) as revise:
15for line in
date:
16 line1 = line.strip().split() #
以空格分隔後是列表形式
17 user_name_password.setdefault(line1[0],[line1[1],0])#
key值為使用者名稱,value值為[密碼,登入次數]
18 user_name_password = str(user_name_password) #
將字典轉換成字串
19 revise.write(user_name_password) #
將字典轉換成的字串寫入檔案test2
2021
22def
main():
23 write()
24while
true:
25 res = menu()#
使用者名稱和密碼輸入,返回值為元組形式(使用者名稱,密碼)
26 with open("
test2
",encoding="
utf8
") as date:
27 user_name_password = {} #
建立乙個空字典,接收使用者、密碼和登入次數的的資料
28for line in
date:
29 user_name_password = eval(line) #
將使用者、密碼和登入次數資料轉化為字典
30if res[0] in user_name_password and user_name_password[res[0]][1] == 3:31#
檔案中登入名已記錄三次,禁止登入
32print("
登入次數過多鎖定")
33break
34if res[0] in user_name_password and res[1] in user_name_password[res[0]][0] and user_name_password[res[0]][1] < 3:35#
使用者、密碼匹配成功和登入次數小於三次,登入成功
36print("
successful")
37break
38if res[0] in user_name_password and res[1] not
inuser_name_password[res[0]][0]:39#
使用者匹配,密碼不匹配,拉入黑名單,登入次數+1
40 user_name_password[res[0]][1]=user_name_password[res[0]][1]+1 #
登入次數+1
41 user_name_password.setdefault(res[0],user_name_password[res[0]][1]) #
將字典中登入次數的資訊進行修改
42 user_name_password = str(user_name_password) #
將字典轉換成字串
43 with open("
test3
", encoding="
utf8
", mode="w"
) as revise:
44 revise.write(user_name_password) #
匹配不成功,將資訊寫入檔案
45 date.close() #
改檔名需關閉檔案
46 revise.close() #
關閉檔案需關閉檔案
47import
os48 os.rename("
test2
", "
test_bak")
49 os.rename("
test3
", "
test2")
50 os.remove("
test_bak
") #
刪除費檔案
51print("
使用者名稱或者密碼錯誤,請重新輸入")
52else:53
print("
使用者名稱或者密碼錯誤,請重新輸入")
54 main()
使用者登入(三次機會)
輸入輸出 示例 1 kate 666666 登入成功!示例 2 kate 123alice 456john 111111 3次使用者名稱或者密碼均有誤!退出程式。i 0 success 0 for i in range 3 name input password input if name kate...
使用者登入(三次機會)
i 3username zhourui password 123 while i 0 i 1name input 請輸入使用者名稱 while name username word int input 請輸入密碼 if word password print 登陸成功 break else prin...
python 使用者登入(三次機會)
給使用者三次輸入使用者名稱和密碼的機會,要求如下 1 如輸入第一行輸入使用者名為 kate 第二行輸入密碼為 666666 輸出 登入成功!退出程式 2 當一共有3次輸入使用者名稱或密碼不正確輸出 3次使用者名稱或者密碼均有誤!退出程式。輸入輸出 示例 1 kate 666666 登入成功!示例 2...