四级菜单实现(Python)

menu_dict = {
'山东' : {
'青岛' : {
'四方':{'兴隆路','平安路','杭州路'},
'黄岛':{},
'崂山':{}
},
'济南' : {
'历城':{},
'槐荫':{},
'高新':{}
},
},
'江苏' : {
'苏州' : {
'沧浪':{},
'相城':{},
'平江':{}
},
'南京' : {
'白下':{},
'秦淮':{},
'浦口':{}
}
}
}

current_layer = menu_dict
parent_layers = []#把不同层级的字典保存在列表中(列表中嵌套字典)[menu_dict,menu_dict[省],。。。。],到最后一层的时候列表是下面这个样子
#parent_layers[0]={'山东': {'青岛': {'四方': {'杭州路', '兴隆路', '平安路'}, '黄岛': {}, '崂山': {}}, '济南': {'历城': {}, '槐荫': {}, '高新': {}}}, '江苏': {'苏州': {'沧浪': {}, '相城': {}, '平江': {}}, '南京': {'白下': {}, '秦淮': {}, '浦口': {}}}}
#parent_layers[1]={'青岛': {'四方': {'杭州路', '兴隆路', '平安路'}, '黄岛': {}, '崂山': {}}, '济南': {'历城': {}, '槐荫': {}, '高新': {}}}
#parent_layers[2]={'四方': {'杭州路', '兴隆路', '平安路'}, '黄岛': {}, '崂山': {}}while True:
    for key in current_layer:
print(key)
choice = input(">>:").strip()
if len(choice) == 0:
continue
if choice in current_layer:
parent_layers.append(current_layer)

current_layer = current_layer[choice]
elif choice =='b':
if parent_layers:
current_layer = parent_layers.pop()
else:
print("无此项")

转载于:https://www.cnblogs.com/johnny1024/p/8213949.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414961.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oh-My-Zsh 中安装 NVM

1、安装命令 sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"2、可能会遇到源出现问题,这时需要设置hosts代理, 可以安装SwitchHosts,配置代理如下: 199.232.68.133 raw.gith…

工作218:页面样式调整

<div class"table-list-page"><div class"query-area"><!--样式控制全部 已经退回 待审核GY--><el-row><el-radio-group v-model"query.status" change"list"><el-radio-button label""&g…

02构建之法第三章第四章及第五章阅读笔记

在之前编写过程中&#xff0c;并没有很好的注意程序的优化问题&#xff0c;时不时的会出现一些bug&#xff0c;在编写时并不会特意去关注代码的质量&#xff0c;不能做到精致。而且在编写代码的时候并不会特意注意代码的规范性&#xff0c;等到后来再次看代码的时候就会忘记了自…

drag传递参数

dragstart(event) {event.dataTransfer.setData(id, event.target.id)}drop(event) {let data event.dataTransfer.getData("id");}dragend(event) {event.dataTransfer.clearData()}

前端学习(2681):重读vue电商网站1之后台启动

后台数据接口启动文件 node -app.js 需要mysql数据库

Android 特效大全代码资源——源码

常用的 iOS 风格 dialog 和 meterial design 风格的 dialog&#xff1a;https://github.com/glassLake/DialogUtils 提高 Android 应用的颜值&#xff0c;酷炫 UI 组件汇总&#xff1a;https://github.com/madongqiang2201/views Awesome-MaterialDesign- MaterialDesignCent…

Promise初步详解(resolve,reject,catch)

一:何为Promise&#xff1f; 为了直观一点&#xff0c;首先我们采用console.dir(Promise)看一下它的结构组成。 从上面的图片中我们可以到&#xff0c;Promise其实是一个构造函数&#xff0c;它有resolve&#xff0c;reject&#xff0c;race等静态方法;它的原型&#xff08;pro…

Fragment生命周期与宿主Activity生命周期

当启动activity是&#xff0c;同时启动activity里面的fragment&#xff0c;各生命周期的起调流程 11-22 16:51:22.051 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...ActivityonCreate11111 11-22 16:51:22.070 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Ac…

docker安装mongodb

1、拉取镜像 docker pull mongo:latest2、创建容器 docker create --name mongodb --restartalways -p 27017:27017 -v mongodb:/data/db mongo:latest3、启动容器 docker start mongodb4、进入容器 docker exec -it mongodb /bin/bash5、输入命令行mongo&#xff0c;进入m…

session 的 源码

session 的 源码 1.session 和 cookie 的 区别&#xff1a; 答&#xff1a; cookie 它是保存在浏览器的键值对。 session 它是保存在服务端的键值对。 它 依赖cookie 存在。 流程&#xff1a; 一个服务端&#xff0c; 一个客户端第一次来 服务端 去 客户端 发来的请求里的…

前端学习(2682):重读vue电商网站3之登录页面总结el-form 组件问题

el-form 组件默认是 content-box&#xff0c;我们设置其如下属性时&#xff0c;就会出现长度比我们想象中长一点的情况。 .login_form {position: absolute;bottom: 60px;width: 100%;padding: 0 20px; //多加一行box-sizing: border-box; } 运行结果

js处理富文本编辑器转义、去除转义、去除HTML标签

富文本编辑器生成的HTML标签&#xff0c;进行转义&#xff0c;然后写入数据库&#xff0c;防止脚本注入&#xff1a; function htmlEncode(value){return $(<div/>).text(value).html(); }从数据库拿出的转义后的HTML标签内容&#xff0c;先得去除转义&#xff0c;然后再…

Android 统一View样式,textview样式

xmlns:tools"http://schemas.android.com/tools" android:text"提示" 1、在values文件夹下的styles文件里面创建textview样式——android:style/Widget.TextView可以替换为其他view,如&#xff1a;button,CheckBox。。。。。 <style name"mytextst…

前端学习(2683):重读vue电商网站4之登录页面总结使用 iconfont 给输入框添加图标

在 main.js 中导入字体图标 然后在 el-input 组件中通过 prefix-icon 进行相关图标引用 最终效果图如下&#xff1a;

hadoop之文件管理基本操作

# 格式化hdfs hadoop namenode -format # 查看hadoop下的文件夹 hadoop fs -ls # 创建hdfs文件夹 hadoop fs -mkdir /user/input # 将本地文件file.txt 复制到新建文件夹,file->hdfs hadoop fs -put /user/wangbin/input/ip_data.txt wangbin # 从hadoop复制到hadoop # 从wa…

Highcharts隐藏网格线

原始效果 加上代码 yAxis: {gridLineWidth: 0,minorGridLineWidth: 0}

前端学习(2684):重读vue电商网站5之登录页面总结如何进行表单验证

Form 组件提供了表单验证的功能&#xff0c;只需要通过 rules 属性传入约定的验证规则&#xff0c;并将 Form-Item 的 prop 属性设置为需校验的字段名即可。 通过 rules 属性传入约定的验证规则 将Form-Item 的 prop 属性设置为需校验的字段名

Android 贴纸样式标签

demo链接&#xff1a;https://download.csdn.net/download/meixi_android/10802704 样式效果 实现方法&#xff1a; 1、自定义标签类 public class LabelImageView extends ImageView {LabelViewHelper utils;public LabelImageView(Context context) {this(context, null);…

Java研发工程师面试题(1)

Java研发工程师面试题(1) 基础题 一、String,StringBuffer, StringBuilder 的区别是什么&#xff1f;String为什么是不可变的&#xff1f;1. String是字符串常量&#xff0c;StringBuffer和StringBuilder是字符串变量。StringBuffer是线程安全的&#xff0c;StringBuilder是非线…