Python阶段复习 - part 4 - 用户登录程序
简易版:
#!/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')
规范化范式版本
代码存放在github上:https://github.com/dachenzi/UserLoginScript
基础需求
- 让用户输入用户名密码
- 认证成功后显示欢迎信息
- 输错三次后退出程序
升级需求
- 可以支持多个用户登录 (提示,通过列表存多个账户信息)
- 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
目录说明
- bin:程序可执行文件目录
- conf:配置文件目录
- db:数据存放目录
- libs: 依赖库文件目录
- logs: 日志存储目录
程序说明
- 执行 bin/main.py 运行程序
- 用户存放在 db/account_db中,使用configparser读取,密码为MD5 加密字符串,初始密码都为123456