1. 程式人生 > >用戶三次登錄鎖定

用戶三次登錄鎖定

python腳本

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

   鎖定用戶        密碼
   lyndon           789

流程圖:

技術分享

腳本實現:

#!/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


本文出自 “lyndon” 博客,請務必保留此出處http://lyndon.blog.51cto.com/11474010/1947417

用戶三次登錄鎖定