三级菜单(低端版VS高端版)
>>>低端版
menu={'山西':
{'太原':
{'迎泽':['柳巷','五一广场','太原站'],
'小店':['山西财经大学','山西大学','武宿机场'],
'晋源':['晋祠','蒙山大佛''山西省图书馆']
},
'吕梁':
{'柳林':['联盛中学','龙花垣'],
'离石':['东关','滨河路的疯狗']
},
'大同':
{'南郊':['大同大学','方特'],
'云冈':['云冈石窟'],
}
},
'北京':
{'朝阳':
{'国贸':['渣打银行','CCTV'],
'望京':['陌陌','奔驰',''],
'三里屯':['优衣库','苹果']
},
'海淀':
{'五道口':['清华','快手'],
'中关村':['汽车之家','新东方'],
},
'昌平':
{'沙河':['老男孩','某鸟'],
'天通苑':['链家'],
'回龙观':['回龙观公园']
}
},
'陕西':
{'西安':{'未央区':['大明宫遗址公园','汉城湖旅游景区'],
'长安区':['翠华山','杨虎城陵园'],
},
'榆林':{'榆阳区':['世纪广场'],
'吴堡县':['黄河大道']
}
}
}
exit_flag=False
while exit_flag==False:
for key in menu:
print(key)
choice=input('>>请选择进入下一层或选择exit退出主菜单:').strip()
if choice=='exit':
break
elif choice in menu:
while exit_flag==False:
for key2 in menu[choice]:
print(key2)
choice2=input('>>请选择进入下一层或者选择back返回上一层,选择exit退出主菜单:').strip()
if choice2=='back':
break
elif choice2=='exit':
exit_flag=True
elif choice2 in menu[choice]:
while exit_flag==False:
for key3 in menu[choice][choice2]:
print(key3)
choice3=input('>>请选择进入下一层或选择back返回上一层,选择exit退出主菜单:').strip()
if choice3=='back':
break
elif choice3=='exit':
exit_flag=True
elif choice3 in menu[choice][choice2]:
for i in menu[choice][choice2][choice3]:
print(i)
while exit_flag==False:
choice4=input('已到达最后一层,请选择back返回上一层或选择exit退出主菜单>>:').strip()
if choice4=='back':
break
elif choice4 == 'exit':
exit_flag = True
>>>高端版
menu={'山西':
{'太原':
{'迎泽':['柳巷','五一广场','太原站'],
'小店':['山西财经大学','山西大学','武宿机场'],
'晋源':['晋祠','蒙山大佛''山西省图书馆']
},
'吕梁':
{'柳林':['联盛中学','龙花垣'],
'离石':['东关']
},
'大同':
{'南郊':['大同大学','方特'],
'云冈':['云冈石窟'],
}
},
'北京':
{'朝阳':
{'国贸':['渣打银行','CCTV'],
'望京':['陌陌','奔驰',''],
'三里屯':['优衣库','苹果']
},
'海淀':
{'五道口':['清华','快手'],
'中关村':['汽车之家','新东方'],
},
'昌平':
{'沙河':['老男孩','某鸟'],
'天通苑':['链家'],
'回龙观':['回龙观公园']
}
},
'陕西':
{'西安':{'未央区':['大明宫遗址公园','汉城湖旅游景区'],
'长安区':['翠华山','杨虎城陵园'],
},
'榆林':{'榆阳区':['世纪广场'],
'吴堡县':['黄河大道']
}
}
}
current_layer=menu #设置当前层的初始值为menu
choiced_layer=[] #建立一个已选层列表
while True:
for key in current_layer:
print(key) #打印当前层信息
choice=input('>>>输入名字进入下一层,back返回上一层,exit退出:').strip()
if choice in current_layer:
choiced_layer.append(current_layer) #把当前层加入已选层列表
current_layer=current_layer[choice] #当前层进入已选下一层
elif choice=='back':
if choiced_layer: #如果列表不为空,执行以下操作
current_layer = choiced_layer.pop() #将最后选择的层从已选层取出来,并赋给当前层
elif choice=='exit':
break
else:
print('无此项')
三级菜单(低端版VS高端版)的更多相关文章
- MOS管的低端驱动和高端驱动
低端功率开关驱动电路的工作原理 低端功率开关驱动的原理非常简单,就是负载一端直接和电源正端相连,另外一端直接和开关管相连,正常情况下,没有控制信号的时候,开关管不导通,负载中没有电流流过,即负载处于断 ...
- Linux内存描述之高端内存--Linux内存管理(五)
1. 内核空间和用户空间 过去,CPU的地址总线只有32位, 32的地址总线无论是从逻辑上还是从物理上都只能描述4G的地址空间(232=4Gbit),在物理上理论上最多拥有4G内存(除了IO地址空间, ...
- A.01.10—模块的输出—PWM高端输出
PWM高端输出比低端输出用得多,如上次提到的卤素灯的控制均是采用高端输出的. PWM高端输出与PWM低端输出的差异就像固态高端输出与固态低端输出的差异类似,从线路失效后对用户的影响来看:高端输出为控制 ...
- Linux内存描述之高端内存–Linux内存管理(五)
服务器体系与共享存储器架构 日期 内核版本 架构 作者 GitHub CSDN 2016-06-14 Linux-4.7 X86 & arm gatieme LinuxDeviceDriver ...
- python三级菜单实例(傻瓜版和进阶版)
程序: python三级菜单 要求: : 1.打印省.市.县三级菜单 2.可返回上一级 3.可随时退出程序 方案一:傻瓜版(其实傻瓜版考察的主要是思路!思路清楚了,那才不是傻瓜!O(∩_∩)O哈哈~) ...
- Android自己定义控件:老版优酷的三级菜单(效果图 + Demo)
效果图: 制作思路: 1.先分析这个效果,事实上能够理解为把三级菜单分成level1,level2,level3,level1是始终显示的. 点击level1后,level2会出现:点击level2后 ...
- Python 三级菜单 增强版
需要实现的功能是:三级菜单1.从文本内读出选项2.查询每一级的选项,并能对选项进行增/删/改功能3.每一级可以退出程序或者返回上一层 2018-5-14 更新内容 思路 实现过程中的BUG及解决方案: ...
- Python学习-------------------三级菜单简单版
题目: 多级菜单 1.三级菜单 2.可依次选择进入的各子菜单 3.所需新知识点:列表.字典 ReadMe: 这个做循环,比较绕脑子 点开运行即可 Min ...
- HubbleDotNet 最新绿色版,服务端免安装,基于eaglet 最后V1.2.8.9版本开发,bug修正,支持一键生成同步表
HubbleDotNet 是一个基于.net framework 的开源免费的全文搜索数据库组件.开源协议是 Apache 2.0.HubbleDotNet提供了基于SQL的全文检索接口,使用者只需会 ...
随机推荐
- 运行或开发.NET Core 的先决条件(支持项目、依赖项)
Windows 上 .NET Core 的先决条件 https://docs.microsoft.com/zh-cn/dotnet/core/windows-prerequisites?tabs=ne ...
- [daily][archlinux][pacman] 删除所有孤立包(orphan)
[:] <tong> sudo pacman -Rsun `pacman -Qdt |cut -d` [:] <tong> 我每次都这么删, 有没有高级点的 ...
- py 正则表达式 List的使用, cxfreeze打包
从index.html当做检索出压缩文件,index.html的内容如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN& ...
- Transparent HugePages(透明大页)
Transparent HugePages(透明大页) 1. 介绍 从RedHat6, RedHat7, OL6, OL7 SLES11 and UEK2 kernels开始,透明大页默认是被开启的以 ...
- js中的事件轮询(event loop)机制
异步任务指的是,不进入主线程.而进入"任务队列"(task queue)的任务,只有"任务队列"通知主线程,某个异步任务可以执行了,该任务才会进入主线程执行. ...
- es基本查询相关的
一.获取索引的mapping GET linewell_assets_mgt_es/lw_devices/_mapping
- linux链接库的理解
前段时间遇到个奇怪的问题,经调试是由于可执行程序A编译时使用的libssl.so.1.1及对应版本头文件,A链接的库libtest.so编译时使用的libssl.so.1.0及对应版本头文件,执行时l ...
- Java如何对List集合的操作方法(二)
4.list中查看(判断)元素的索引: 注意:.indexOf(): 和 lastIndexOf()的不同: ///*************************************** ...
- tomcat去掉项目名称
进入tomcat的conf目录,查看server.xml,找到<Host></Host>,在里面添加<Context path="" docBase= ...
- max_allowed_packet引起同步报错处理
一台MySQL的Cat数据库,每天早上1点定期删除,有4个表,删除完后,这4个表都有blob字段,很大量,部署删除job就同步报错. Got fatal error 1236 from master ...