使用者登入三次,禁止登入

2022-08-16 08:30:11 字數 2956 閱讀 7915

1

defmenu():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...