基础需求:
让用户输入用户名密码
认证成功后显示欢迎信息
输错三次后退出程序
升级需求:
可以支持多个用户登录 (提示,通过列表存多个账户信息)
用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
代码:

# 通过列表存储用户名,密码
logon_authentication = False
user_info = [[‘li‘, ‘123‘], [‘yong‘, ‘234‘], [‘liyong‘, ‘345‘]]
logon_num = 3
# 取锁定名单
lock_file = open(‘lock‘, ‘r‘, encoding=‘utf-8‘)
lock_list = lock_file.read()
lock_file.close()
# 首次输入用户密码
user_name = input(‘please input your name :‘)
user_pass = input(‘please input your password :‘)
# 循环判断用户密码
for user_item in user_info:
if user_name == user_item[0]:
# 判断是否在锁定名单
if user_name in lock_list:
print(‘该用户已被锁定!‘)
break
# 验证用户密码,重新输入密码须在限制次数内
for i in range(logon_num - 1):
if user_pass == user_item[1]:
print(‘登陆成功‘)
# 标志位验证登录结果及跳出多层循环
logon_authentication = True
break
else:
logon_num = logon_num - 1
print(‘密码错误,您还有‘, logon_num, ‘次输入密码的机会‘)
user_pass = input(‘please again input your password :‘)
else:
print(‘超过三次,用户已锁定!‘)
lock_file = open(‘lock‘, ‘a‘, encoding=‘utf-8‘)
lock_list = lock_file.write(user_name)
lock_file.close()
break
# 判断跳出一级循环
if logon_authentication:
break
else:
print(‘没有此用户‘)
# 登录成功,进入下一级页面
if logon_authentication:
print(‘欢迎来到{user}的空间‘.format(user=user_name))
View Code