# 一、【用户登陆程序】
# 基础需求:
# 让用户输入用户名密码
# 认证成功后显示欢迎信息
# 输错三次后退出程序

count = 0
name = "cheng"
password = ""
while count <3:
count += 1
your_name = input ("请输入你的名字:")
your_pwd = input ("请输入你的密码:")
if your_name == name and your_pwd == password:
print("登录成功,欢迎进入..")
break
else:
print("名字或密码错误,你还有%s次机会" % (3-count))

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

lock = "lock"
account = "account"
flag = 1
count = 0
lock_user = []
file1 = open(lock, "r")
lock_file = file1.readline()
file1.close() for i in lock_file:
i = i.strip("\n")
lock_user.append(i) file2 = open(account, 'r')
account_file = file2.readlines()
file2.close() while True:
your_name = input("请输入你的名字:")
your_pwd = input("请输入你的密码:")
if your_name in lock_file:
print("你的用户名已经给锁定,请联系管理员")
break else:
count += 1
if count > 2:
print("你的用户名已经给锁定,请联系管理员")
with open(lock, "a") as file:
file.write(your_name + "\n")
break else:
for i in account_file:
name, password = i.strip(" ").split()
if your_name == name and your_pwd == password:
print("登录成功,欢迎进入")
flag = True
else:
continue
if flag is True:
break

# 二、【三级菜单】
# 数据结构:
#
# 需求:
# 可依次选择进入各子菜单
# 可从任意一层往回退到上一层
# 可从任意一层退出程序
# 所需新知识点:列表、字典


menu = {
'北京': {
'海淀': {
'五道口': {
'soho': {},
'网易': {},
'google': {}
},
'中关村': {
'爱奇艺': {},
'汽车之家': {},
'youku': {},
},
'上地': {
'百度': {},
},
},
'昌平': {
'沙河': {
'老男孩': {},
'北航': {},
},
'天通苑': {},
'回龙观': {},
},
'朝阳': {},
'东城': {},
},
'上海': {
'闵行': {
"人民广场": {
'炸鸡店': {}
}
},
'闸北': {
'火车站': {
'携程': {}
}
},
'浦东': {},
},
'山东': {},
} layer = [menu]
while layer:
for i in layer[-1]:print(i)
choice = input(">>:).strip()
if choice in layer[-1].key() and layer[-1][choice]:
layer.append(layer[-1][choice])
elif choice == "b":layers.pop()
elif choice.upper() =="Q": break

最新文章

  1. Alpha阶段第八次Scrum Meeting
  2. Net中HttpClient 重试
  3. C++strng流(入门级)
  4. Security &#187; Authorization &#187; 简单授权
  5. 转__Android Studio ,基于intellij idea
  6. 零基础学习Linux(三)linux与windows文件共享
  7. JS多选日期
  8. TeamCity : Build 失败条件
  9. [ZJOI2007]时态同步
  10. Winform 图片预览列表+分页显示
  11. Codeforces Round #440 Div. 1
  12. 【BZOJ3165】[HEOI2013]Segment(李超线段树)
  13. 设计模式C++学习笔记之十二(Command命令模式)
  14. BZOJ.2115.[WC2011]Xor(线性基)
  15. Android之移动热修复
  16. 【转载】Putty出现 Network error:Software caused connection abort
  17. hdu1002-A + B Problem II-(java大数)
  18. am335x ar8031 双网口配置记录
  19. SpringMVC由浅入深day01_12.4 pojo绑定_12.5自定义参数绑定实现日期类型绑定_12.6集合类
  20. 【ocp新题】OCP 12c 062认证考试出现大量新题-8

热门文章

  1. SpringSecurityOauth RCE (CVE-2016-4977) 分析与复现
  2. 为什么我的会话状态在ASP.NET Core中不工作了?
  3. SpringCloud学习系列之三----- 断路器(Hystrix)和断路器监控(Dashboard)
  4. Gradle入门到实战(二) — ImageOptimization安卓图片转换压缩插件
  5. 对于一个WEB前端初学者,学前端应该注意,有什么技巧
  6. SQL SERVER 查看所有存储过程或视图里 包含某个关键字的查询语句
  7. 数据库之redis篇(3)—— Python操作redis
  8. 织梦5.7sp1最新问题:后台不显示编辑器
  9. AI应用开发实战 - 手写算式计算器
  10. C#中的RDLC报告