基础需求:

  • 让用户输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后退出程序

升级需求:

  • 可以支持多个用户登录 (提示,通过列表存多个账户信息)
  • 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)

1、多用户采用字典存用户信息,同一个用户输出三次用户就会被拉入黑名单锁定(同一用户可以连续或者非连续输错三次)

2、涉及到文件的建立,读取,写入知识点

user_info = {'aa':{'password':123,'count':3},
'bb': {'password': 123, 'count': 3},
'cc': {'password': 123, 'count': 3}}
while True:
user_name = input('用户名:>').strip()
pass_word = int(input('密码:>')).strip()
if user_name not in user_info:
continue
else:
file = open('black_name.txt','a')
with open('black_name.txt','r') as f_b:
f = f_b.read()
if user_name in f :
print('用户输错过多,被锁定!')
break
else:
if pass_word == user_info[user_name]['password']:
print('登录成功,欢迎您!')
break
else:
user_info[user_name]['count'] -= 1
print(f"您还有{user_info[user_name]['count']}次机会输入")
if user_info[user_name]['count'] == 0:
with open('black_name.txt','w') as f_b:
f = f_b.write(user_name)
print('您输错过多,被锁定!')
break

最新文章

  1. SQL Server 2012 Managed Service Account
  2. js去掉字符串前后空格的五种方法
  3. [原创] 用两个queue实现stack的功能
  4. Ubuntu下编译SuiteSparse-4.4.1和METIS-4.0.3
  5. NOIP 2014 普及组 T4 子矩阵
  6. Android 中如何获取 H5 保存在 LocalStorage 的数据
  7. 10 款精美的 CSS3 全新特效
  8. jdk的wsimport方法实现webservice客户端调用服务
  9. iOS开发——高级技术&摇一摇功能的实现
  10. C# 翻页设计:首页,上一页,下一页,末页 ,跳转
  11. 来看看Github上流行的编码规范
  12. 打造支持apk下载和html5缓存的 IIS(配合一个超简单的android APP使用)具体解释
  13. Django中文无法转换成latin-1编码的解决方案
  14. bzoj1637 [Usaco2007 Mar]Balanced Lineup
  15. Spring XML 不给提示
  16. 架构漫谈:UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
  17. jquery 表单 清空
  18. ReactNative学习之css样式使用
  19. Yacc 与 Lex 快速入门(词法分析和语法分析)
  20. scalajs_初体验

热门文章

  1. 使用 Visual Studio Code (VSCODE)写 C51 (持续更新 2018-04-09)
  2. RAW+ASM 的RAC 安装文档
  3. windows python3 安装gittle
  4. centos6/7安装gitlab
  5. http常用状态码说明
  6. ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded
  7. git Push failed: Could not read from remote repository 解决方案
  8. bzoj4928: 第二题
  9. Oracle学习操作(5)触发器
  10. jmeter监控服务器的方法