模拟登陆:
1. 用户输入帐号密码进行登陆
2. 用户信息保存在文件内
3. 用户密码输入错误三次后锁定用户
思路:
1. 用户名密码文件为passwd,锁定用户文件为lock
2. 用户输入账号密码采用input输入,分割passwd文件出user,passwd字段并比较input的user和passwd
3.当用户三次输入错误后将input user写入到lock文件,读取时判断是否在lock文件中存在
4.提前准备写acc.json文件,将用户名密码预先保存在里面
流程图
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
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!!!')
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
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
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
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