python三级菜单优化,菜鸟版链接:http://www.cnblogs.com/xuyaping/p/6648170.html

menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
} current_layer=menu #当前层
last_layers=[menu] #上一层
while True:
for key in current_layer: #打印第一层菜单
print(key)
choice=input(">>:").strip() #选择第二层菜单
if choice in current_layer:
last_layers.append(current_layer) #进入下一层菜单前,把当前层菜单加入上一次菜单中
current_layer=current_layer[choice] #当前层菜单被重新定义,进入循环打印下一层菜单
if choice==0: #选择菜单层为空,结束本次循环
continue
if choice=="q": #选择菜单层为“q”,结束本层循环
break
if choice=="b": #选择菜单层为“b”,返回上一层菜单
current_layer=last_layers[-1] #返回上一层菜单前,当前层被重新定义
last_layers.pop() #删除最后一次进入下一层菜单所加入的上一层列表数据
print("程序结束!")

  

最新文章

  1. cc1101 ASK发射模式
  2. 【BZOJ 1178】【APIO 2009】CONVENTION会议中心
  3. 使用media Queries实现一个响应式的菜单
  4. WindowsPhone-GameBoy模拟器开发五--使用XNA初略实现Gameboy显示系统
  5. android之文件权限问题
  6. 【转】用ASP.NET加密Cookie数据
  7. CentOS(六)--Linux系统的网络环境配置
  8. [置顶] VB 中chr(10)、chr(13)和vblf、vbcr、vbcrlf的分别
  9. 【LaTeX排版】LaTeX论文模版
  10. selenium+python,解决selenium弹出新页面,无法定位元素的问题(报错:Unable to locate element:元素)
  11. 20175202 《Java程序设计》第五周学习总结
  12. Springboot整合二 集成 rabbitmq
  13. Python杀死windows进程
  14. date命令说明
  15. 第十章 优先级队列 (b4)完全二叉堆:批量建堆
  16. java 读写 excle 完整版
  17. HTML5 本地文件操作之FileSystemAPI实例(一)
  18. spring applicationContext.xml 配置文件 详解
  19. 【Anisble 文档】【译文】测试策略
  20. ✅问题:Rails.ajax的data不支持{}hash格式。必须使用string。 dataType的格式。

热门文章

  1. [整理]菜鸟教程:docker使用笔记
  2. No entity found for query异常
  3. 【bzoj3513】[MUTC2013]idiots FFT
  4. 【Luogu】P3761城市(dfs)
  5. ubuntu 安装tomcat<服务器>
  6. [UOJ#276]【清华集训2016】汽水
  7. BZOJ 4553 [Tjoi2016&Heoi2016]序列 ——CDQ分治 树状数组
  8. LibreOJ2241 - 「CQOI2014」排序机械臂
  9. POJ4007 Flood-it!
  10. 【MFC】 点击不同的按钮后在界面同一位置显示不同的对话框内容(转)