py作业1

模拟登陆:
1. 用户输入帐号密码进行登陆
2. 用户信息保存在文件内
3. 用户密码输入错误三次后锁定用户

思路:

1. 用户名密码文件为passwd,锁定用户文件为lock

2. 用户输入账号密码采用input输入,分割passwd文件出user,passwd字段并比较input的user和passwd

3.当用户三次输入错误后将input user写入到lock文件,读取时判断是否在lock文件中存在

4.提前准备写acc.json文件,将用户名密码预先保存在里面

流程图

 

 

 

 

 

import logger,auth
import time

access_logger = logger.logger('access')
menu = u'''
=========Welcome My System=======
please input your username and password
'''
menu1=u'''
=========gogogo========
your password is right!
'''

time_ci=0
while time_ci<3:
    print(menu)
    us_er=input('username>>:')
    who_us=auth.test_user(us_er)
    if who_us:
        us_pass=input('password>>:')
        who_pass=auth.test_pass(us_er,us_pass)
        if who_pass:
            print(menu1)
            break
        else:
            access_logger.error('password is Worng,your only have %d changes '%(3-time_ci))
            time_ci+=1
            time.sleep(5)
    else:
        access_logger.error('username is Worng,your only have %d changes '%(3-time_ci))
        time_ci+=1
        time.sleep(5)
else:
    print('Game over!!!')
main.py
import logging

def logger(logger_name):
    logger=logging.getLogger()
    ch=logging.StreamHandler()
    fh = logging.FileHandler(logger_name)
    formatter=logging.Formatter('%(asctime)s-%(name)s-(levelname)s-%(message)s')
    ch.setFormatter(formatter)
    fh.setFormatter(formatter)
    logger.addHandler(ch)
    logger.addHandler(fh)
    return logger
logger.py
import json

def db_ob():
    f=open('acc.json','r')
    data=f.read()
    f.close()
    return data

def test_user(name):
    data=db_ob()
    data=json.loads(data)
    if name in data:
        return True
def test_pass(name,pswd):
    data=db_ob()
    data=json.loads(data)
    if pswd==data[name]:
        return True
auth.py

 

转载于:https://www.cnblogs.com/westwind01/p/11183596.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值