學習Python 登入接口重寫版

要求spa

1.輸入用戶名與密碼code

2.驗證成功顯示歡迎頁blog

3.輸入錯誤3次,鎖定用戶名ip

 

也是看了很是多的大神,老師,師兄的代碼啓發,才寫出以下的重寫版input

 

       這條代碼也是瞎幾把搞才研究出來的,具體原理不是很懂it

              name = dict(k.strip().split('=') for k in name_list.readlines())

若是把 strip() 和 split('=') 的位置互換一下 那麼就會報錯 緣由估計是 strip() 只能對 str類型操做
已知BUG:
1.
輸入2次同一個正確的用戶名和錯誤的密碼,第3次輸入另外一個正確的用戶名和錯誤的密碼,則鎖定第3次輸入的用戶名

 

用戶名與密碼文件  name_list.ini 內容以下:class


mask=123原理

jake=123qq密碼

qb11=123qweim


鎖定用戶列表文件 lock_list.ini   內容默認爲空:

 

 

 

 

i = 0 g = 3 w = 0 j = 0 print(''' ************************************* 歡迎使用登入系統 *************************************''') while i < 4: i = i + 1 i_name = input('請輸入您的用戶名:') #輸入用戶名
    name_list = open('name_list.ini','r') #讀取用戶名和密碼字典
    name = dict(k.strip().split('=') for k in name_list.readlines()) name_list.close() lock_list = open('lock_list.ini','r')# 讀取被鎖定用戶名
    lock = [k.strip() for k in lock_list.readlines()] lock_list.close() lk = i_name in lock #輸入的用戶名 對比 鎖定列表
    f = i_name in name  #輸入的用戶名 對比 註冊已用戶名
    if len(i_name) == 0 or j == 3: #檢查輸入的用戶名是否爲空
        print('您輸入的用戶名爲空') j = j + 1
        if j == 3: print('您已經連續輸入3次空用戶名了,系統強制退出') i = 4
    elif lk == True: print('您的用戶名已被鎖定,請聯繫管理員') i = i + 4
    elif f == False: w = w + 1
        print('您輸入的用戶名無效,請從新輸入') if w == 3: print('您已經輸入了3次數無效用戶名了,系統強制退出,') i = 4
    elif f == True: #若是用戶名正確 則取其密碼,讓用戶輸入密碼
        mima = name[i_name] i_mima = input('請輸入您的密碼:') if i_mima == mima: print('歡迎光臨,%s'%i_name) #密碼正確 顯示歡迎頁
            i = 4
        else: g = g - 1
            print('用戶名或密碼錯誤\n(您還有%s次機會)'%g) if g == 0: print('您已經輸入了3次錯誤的密碼,已被系統鎖定') a = open('lock_list.ini','a')#密碼錯誤3次,寫入用戶名到鎖定列表
                a.write(str(i_name + '\n')) a.close() i = 4

 

能否再精簡代碼?

能否增強功能?

相關文章
相關標籤/搜索