用戶三次登陸鎖定

需求
    編寫登錄接口
    讓用戶輸入用戶名密碼
    認證成功後顯示歡迎信息
    輸錯三次後退出程序
    能夠支持多個用戶登陸
    用戶3次認證失敗後,退出程序,再次啓動程序嘗試登陸時,仍是鎖定狀態
測試信息
   用戶           密碼
   alex            123
   egon            456

   鎖定用戶        密碼
   lyndon           789

流程圖:python

wKioL1loNs2RweeYAACDtJfn_VE687.png

腳本實現:ide

#!/bin/env python
# -*- coding:utf-8 -*-
# 用字典定義用戶名和密碼
db={'egon':'123','alex':'456','lyndon':'789'}
"""
須要先建立文件user_list
a、a+ 能建立文件,但不能按行讀取文件內容
w、w+ 能建立文件,但每次執行會清空文件內容
r、r+ 能按行讀取文件內容,但不能建立不存在的文件
只能手動建立了,心累。。。
"""
# 按行讀取user_list內容,以列表形式賦值給lock_list
f=open('user_list','r')
lock_list=f.readlines()
lock_list=lock_list.__str__()
f.close()

while True:
    print ("""
==========================
【E】     登陸
【Q】     退出
==========================
    """)
    choice=input ('請輸入你的選擇:')
    if choice.lower() == 'q':
        break
    elif choice.lower() != 'q' and choice.lower() != 'e':
        print ('輸入錯誤,請從新輸入')
    if choice.lower() == 'e':
        username=input ('請輸入用戶名:')
        if username not in db:
            print ('沒有此用戶!')
            continue
        elif username in lock_list:
            print ('該用戶已鎖定,請聯繫管理員解鎖!')
            continue
        else:
            for i in range(3):
                passwd=input ('請輸入密碼:')
                if passwd != db.get(username):
                    print ('密碼錯誤!')
                    if i == 2:
                        f = open('user_list','a')
                        f.writelines('%s\n'%username)
                        f.close()
                        print ('密碼錯誤三次,用戶已鎖定!')
                        exit()
                else:
                    print ('登錄成功!')
                    break
相關文章
相關標籤/搜索