基础需求: 让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序 升级需求: 可以支持多个用户登录 (提示,通过列表存多个账户信息) 用户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))