模擬三次登陸並鎖定賬號——Python基礎

在剛開始學習Python幾天的時候,就碰到一個模擬登陸的題目:輸入賬號密碼,連續錯誤三次就將賬號鎖定,而且在下一次打開運行的時候,顯示的是賬戶鎖定,而不是又輸入賬號密碼

納尼,我曉得做個錘子,偶才學到判斷和循環,你要偶來做這個,還是闊以鎖定賬號滴,偶的個乖乖!
然後我就這樣寫交了上去

# -*- coding: utf-8 -*-
name = 'lxl'
password = 123

passed_authentication = False

for i in range(3):

    Username = input('請輸入您的賬號:')
    Password = input('請輸入你的密碼:')

    if Username == name and Password == password:
        print('歡迎 %s 登陸...' % name)
        passed_authentication = True  # 真,成立
        break  # 跳出循環,中斷
    else:
        print('您輸入的賬號或者密碼錯誤')

if not passed_authentication:  # 只有在True的情況下,條件成立
    print("連續三次錯誤,該賬戶已被鎖定")

這樣子寫的缺點很明顯,就是重新運行一下一樣可以再次驗證
一直學到了文件流和json,才知道怎麼實現三次鎖定賬戶:我們知道,賬號密碼等信息都是存儲在數據庫中,而我還沒有學到數據庫,只能用文件來代替數據庫了,嘿嘿
我覺得我做的還是有很多地方不好,希望各位能給點建議,學習學習

首先得註冊一個賬號密碼:(這樣寫還有一個很嚴重的缺陷,只能弄一個賬號,再次註冊把原來的覆蓋了)

# -*- coding: utf-8 -*-
import random
import json

Username = ''
for i in range(5):
    add = random.choice([random.randrange(10)])
    Username += str(add)
print("您申請的賬號:%s"%Username)
passed_authentication = False

for i in range(3):
    Password = input('請輸入你的密碼:')
    Password1 = input('請再次輸入你的密碼:')

    if Password == Password1:
        dict = {"Name": Username, "Password": Password, "State": "normal"}

        with open('Json', 'w', encoding='utf8') as fb:
            fb.write(json.dumps(dict))
        passed_authentication = True  # 真,成立
        break  # 跳出循環,中斷
    else:
        print("您兩次輸入的密碼不同")

if not passed_authentication:  # 只有在True的情況下,條件成立
    print("你逗我玩呢")

驗證登陸:

# -*- coding: utf-8 -*-
import json
with open('Json','r',encoding='utf8') as r:
    reads = json.loads(r.read())
    name = reads['Name']
    password = reads['Password']
    State = reads['State']

passed_authentication = False

for i in range(3):

    if State == 'normal':
        pass
    else:
        print("您的賬號已被鎖定")
        break

    Username = input('請輸入您的賬號:')
    Password = input('請輸入你的密碼:')

    if Username == name and Password == password:
        print('歡迎 %s 登陸...' % name)
        passed_authentication = True  # 真,成立
        break  # 跳出循環,中斷
    else:
        print('您輸入的賬號或者密碼錯誤')

if not passed_authentication:  # 只有在True的情況下,條件成立
    dict = {"Name": name, "Password": password, "State": "lock"}

    with open('Json', 'w', encoding='utf8') as fb:
        fb.write(json.dumps(dict))
    print("您的賬戶已被鎖定")

做出來的四不像,弄得我自己都看不下去了,願各位大佬幫幫忙,完善一下這個鬼東東

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章