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, 这里有一篇文章说明扁平化的设计的一些想法 ...
随机推荐
- 两个有序数组长度分别为m,n,最多m+n次查找找出相同的数
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 第一个SpringBoot程序
第一个SpringBoot程序 例子来自慕课网廖师兄的免费课程 2小时学会SpringBoot Spring Boot进阶之Web进阶 使用IDEA新建工程,选择Spring Initializr,勾 ...
- 2、买卖股票的最佳时机 II
2.买卖股票的最佳时机 II 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意:你不能 ...
- git 本地仓库与远程仓库建立连接
我们在使用git clone的时候可能会报错: Could not read from remote repository.Please make sure you have the correct ...
- 洛谷P2572 [SCOI2010]序列操作(ODT)
题解 题意 题目链接 Sol ODT板子题..... // luogu-judger-enable-o2 #include<bits/stdc++.h> #define LL long l ...
- python之正则表达式及RE模块
正则表达式(匹配字符串)web界面正则匹配工具:http://tool.chinaz.com/regex/ 元字符 1 . 匹配除换行符之外的任意字符 2 \w 匹配数字字母下划线 3 \d 匹配数字 ...
- linux定时任务调度定系统——opencron
linux定时任务调度定系统——opencron https://gitee.com/terrytan/opencron/#%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83 一 ...
- Android中的padding和margin的区别
在Android的布局中,常常有人将padding和margin搞混,他们其实不一样的,padding是该控件的内部距离. magin是该控件与其他控件之间的距离.例如 <LinearLayou ...
- vue axios 发送post请求,后端接收参数为null
1首先检查自己的传参方式是否正确,我是传一个对象,没有问题,接口也触发了 2查了下资料说是 Content-Type的问题,设置为 'application/x-www-form-urlencod ...
- Kotlin入门(13)类成员的众生相
上一篇文章介绍了类的简单定义及其构造方式,当时为了方便观察演示结果,在示例代码的构造函数中直接调用toast提示方法,但实际开发是不能这么干的.合理的做法是外部访问类的成员属性或者成员方法,从而获得处 ...