Python階段複習 - part 4 - 用戶登陸程序

簡易版:python

 

#!/usr/bin/env python
# _*_ coding:UTF-8 _*_
# __auth__:Dahlhin

import sys


userinfo = r'userinfo.txt'
userlock = r'userlock.txt'


def user_exist_check(user):
    '''檢查用戶是否存在'''
    with open(userinfo) as fd:
        for info in fd:
            if user == info.strip().split()[0]:
                return True
        return False

def user_lock_check(user):
    '''檢查用戶是都被鎖定'''
    with open(userlock) as fd:
        for lock in fd:
            if user == lock.strip():
                return True
        return False

def passwd_check(passwd):
    '''檢查密碼合法性'''
    with open(userinfo) as fd:
        for info in fd:
            if passwd == info.strip().split()[1]:
                return True
            return False

def lock_user(user):
    '''用戶鎖定'''
    with open(userlock,'a') as fd:
        fd.write('%s\n' % user)


def user_login():
    '''登錄主程序'''
    count = 0
    while count < 3:
        user = input('UserName:')
        passwd = input('PassWord:')
        if user_exist_check(user):
            if not user_lock_check(user):
                if passwd_check(passwd):
                    return True
                else:
                    print('密碼錯誤')
            else:
                print('帳號被鎖定')
        else:
            print('帳號不存在')
        count += 1

    else:
        if user_exist_check(user):
            if not user_lock_check(user):
                lock_user(user)
        return  False


if __name__ == '__main__':
    result = user_login()
    if result:
        print('Welcome login')
    else:
        print('bye bye')

 

  

 

規範化範式版本git

代碼存放在github上:https://github.com/dachenzi/UserLoginScriptgithub

基礎需求
  • 讓用戶輸入用戶名密碼
  • 認證成功後顯示歡迎信息
  • 輸錯三次後退出程序
升級需求
  • 能夠支持多個用戶登陸 (提示,經過列表存多個帳戶信息)
  • 用戶3次認證失敗後,退出程序,再次啓動程序嘗試登陸時,仍是鎖定狀態(提示:需把用戶鎖定的狀態存到文件裏)
目錄說明
  • bin:程序可執行文件目錄
  • conf:配置文件目錄
  • db:數據存放目錄
  • libs: 依賴庫文件目錄
  • logs: 日誌存儲目錄
程序說明
  • 執行 bin/main.py 運行程序
  • 用戶存放在 db/account_db中,使用configparser讀取,密碼爲MD5 加密字符串,初始密碼都爲123456
相關文章
相關標籤/搜索