python3 练习题(多级菜单)
'''
多级菜单
需求:
1.现有省/市/县3级结构,要求程序启动后,允许用户可依次选择进入各子菜单
2.可在任意一级菜单返回上一级
3.可以在任意一级菜单退出程序
所需新知识点: 列表/字典
'''
menu = {
"山东": {
"济南": {
"平阴": {},
"商河": {},
"莱芜": {}
},
"济宁": {
"金乡": {},
"微山": {},
"嘉祥": {}
},
"曲阜": {
"南辛": {},
"陵城": {},
"防山": {}
}
},
"北京": {
"海淀": {
"万寿路": {},
"永定路": {},
"中关村": {}
},
"昌平": {
"回龙观": {},
"南口": {},
"沙河": {}
},
"朝阳": {
"呼家楼": {},
"三里屯": {},
"双井": {}
}
},
"上海": {
"黄浦": {
"南京东路": {},
"外滩": {},
"瑞金二路": {}
},
"徐汇": {
"湖南路": {},
"天平路": {},
"枫林路": {} },
"长宁": {
"华阳路": {},
"新华路": {},
"江苏路": {}
}
},
} current_menu = menu
layers = []
while True:
for i in current_menu:
print(i)
choice = input(">: ").strip()
if choice in current_menu:
layers.append(current_menu)
current_menu = current_menu[choice]
elif choice.upper() == "B":
if len(layers) == 0:
print("已经到顶了")
continue
current_menu = layers.pop() ----------------------------------------------微调1------------------------------------ current_menu = menu
choices = []
while True:
for i in current_menu:
print(i)
choice = input(">: ").strip()
if choice in current_menu:
choices.append(choice)
current_menu = current_menu[choice]
elif choice.upper() == "B":
current_menu = menu
if len(choices) == 0:
print("已经到顶了")
continue
choices.pop()
for i in choices:
current_menu = current_menu[i]
'''
比上面的代码多了最后两行,请大佬留言,哪个方式更好一些.
''' ------------------------------------------微调2--------------------------------------- current_menu = menu
choices = []
while True:
for i in current_menu:
print(i)
print("q退出 b返回上一级")
if len(choices) >= 1:
choice = input("%s>: " % '>'.join(choices)).strip()
else:
choice = input(">: ").strip()
if choice in current_menu:
choices.append(choice)
current_menu = current_menu[choice]
elif choice.upper() == "B":
current_menu = menu
if len(choices) == 0:
print("已经到顶了")
continue
choices.pop()
for j in choices:
current_menu = current_menu[j]
elif choice.upper() == "B":
break
python3 练习题(多级菜单)的更多相关文章
- python3之利用字典和列表实现城市多级菜单
利用字典和列表实现城市多级菜单 #coding:utf-8 #利用字典和列表实现城市多级菜单 addrIndex = {":"福建"} addrDict = {" ...
- s12-day01-work02 python多级菜单展示
README # README.md # day001-work-2 @南非波波 功能实现:多级菜单展示 流程图:  程序实现: ...
- Python多级菜单
作业2:多级菜单三级菜单可依次选择进入各子菜单所需新知识点:列表.字典 1.流程图 2.登录界面,输入对应索引 #!/usr/bin/env python3 # -*- coding:utf-8 -* ...
- 前端开发css实战:使用css制作网页中的多级菜单
前端开发css实战:使用css制作网页中的多级菜单 在日常工作中,大家都会遇到一些显示隐藏类菜单,比如页头导航.二维码显示隐藏.文本提示等等......而这些效果都是可以使用纯css实现的(而且非常简 ...
- MVC5+EF6 入门完整教程13 -- 动态生成多级菜单
稍微有一定复杂性的系统,多级菜单都是一个必备组件. 本篇专题讲述如何生成动态多级菜单的通用做法. 我们不用任何第三方的组件,完全自己构建灵活通用的多级菜单. 需要达成的效果:容易复用,可以根据mode ...
- java 24 - 7 GUI之 创建多级菜单窗体
需求: 创建多级菜单 步骤: A:创建窗体对象(并设置属性和布局) B:创建菜单栏 C:创建菜单和子菜单 D:逐步添加菜单(子菜单添加到菜单中,菜单添加到菜单栏中) E:窗体中设置菜单栏(菜单栏并不是 ...
- 单片机C语言下LCD多级菜单的一种实现方法
摘要: 介绍了在C 语言环境下,在LCD 液晶显示屏上实现多级嵌套菜单的一种简便方法,提出了一个结构紧凑.实用的程序模型. 关键词: 液晶显示屏; 多级菜单; 单片机; C 语言; LCD 中 ...
- zTree下拉菜单多级菜单多选实现
惯例,先上图: 这是在一个项目中,为了满足样式美观.多级菜单以及多选而将zTree插件更改过后的效果. 在实际的开发过程中,本来zTree也是可以满足需求的,但是zTree多选的话需要checkbox ...
- Jquery多级菜单插件Slimmenu使用说明
Jquery多级菜单插件Slimmenu使用说明 现在扁平化设计逐渐的成为了趋势,不管是pc web,还是移动互联网的应用开发,都在研究和设计Flat ui, 这里有一篇文章说明扁平化的设计的一些想法 ...
随机推荐
- MVC 的 Razor引擎显示代码表达式与隐式代码表达式
隐式代码表达式 就是一个标识符,之后可以跟任意数量的方法调用("()").索引表达式("[]")及成员访问表达式(".").但是,除了在&q ...
- SqlServer -- char varchar、nchar、nvarchar
一.char与varchar 列如: char(10) varchar(10) 写入“abc”char 损耗了硬盘10字节 = “abc”长度 + 7个空字符varchar损耗了硬盘3字节 = “ab ...
- mysql 8小时超时设置
1.打开MySQL配置文件 2.添加 interactive_timeout=31536000wait_timeout=31536000 3.重新启动服务 打开MySQL命令行界面查看设置是否成功
- JavaSE Map集合
Map集合 在Map集合中保存的数据为一组数据,其中:一个数据为key,另外一个数据为value.而key和value具备对应的关系,在集合中它们属于一组(一对)数据.而每个key只能对应唯一的一个v ...
- border-sizing属性详解和应用
box-sizing用于更改用于计算元素宽度和高度的默认的 CSS 盒子模型.它有content-box.border-box和inherit三种取值.inherit指的是从父元素继承box-sizi ...
- Starting zookeeper ... already running as process 1805错误
启动zookeeper的时候,报Starting zookeeper ... already running as process 1805错误 上面这个错误意思为以作为进程1805运行.系统检测到你 ...
- Linux常用基本命令:三剑客命令之-awk内置函数用法
awk的内置函数大致可以分类为算数函数.字符串函数.时间函数.其他函数等 算数函数 最常用的算数函数有rand函数.srand函数.int函数. 可以使用rand函数生成随机数,但是使用rand函数时 ...
- 洛谷P4424 [HNOI/AHOI2018]寻宝游戏(思维题)
题意 题目链接 Sol 神仙题Orz Orz zbq爆搜70.. 考虑"与"和"或"的性质 \(0 \& 0 = 0, 1 \& 0 = 0\) ...
- jsPlumb.jsAPI阅读笔记(官方文档翻译)
jsPlumb DOCS 公司要开始做流程控制器,所以先调研下jsPlumb,下文是阅读jsPlumb提供的document所产生的归纳总结 setup 如果不使用jQuery或者类jQuery库,则 ...
- 元素的class和id问题
一个元素有且只能有1个id,且全文中此id只能出现在一个元素上 一个元素不能写多次class,比如 <div class="a" class="b"& ...