#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# name:zzyu
map = {
"中国":{
"北京":{
"昌平区":{
"沙河镇":["西沙屯","路庄","王庄"],
"阳坊镇":["东贯市","西贯市","阳坊"],
},
"密云区":{
"高岭镇":["四合村","燕落村","高岭村"],
"密云镇":["阳光小区","月光小区","星光小区"]
},
"朝阳区":{
"北苑":["北苑小区","茉莉园小区","丽春园小区"],
"霍营":["霍营地铁","望京地铁","北苑地铁"]
}
},
"河北":{
"河北省":{
"石家庄":["石家庄小区","二小区","三小区"],
"保定":["保一区","保二区","保三区"]
},
"唐山":{
"开平区":["大麻各庄村","茅草营村","粟园镇"],
"古冶区":["刘各庄村","小寨村","养马庄村"]
},
"廊坊":{
"安次区":["小屯村","青坨村","东北尹"],
"武清区":["新刘庄","前台","北寺"]
}
},
"天津":{
"北辰区":{
"一镇":["心罗园","紫罗园","心泽园"],
"二镇":["荣业园","荣熙园","荣翔园"]
},
"红桥区":{
"三镇":["水竹园","水木天成","华水大厦"],
"四镇":["运通园","顺通园","天阔园"]
},
"西青区":{
"五镇":["西清医院","西青政府","西青银行"],
"六镇":["双河新村","河畔人家","文化中心"]
}
}
}
}
print("\033[31;1m选择期间按<q>退出,按<b>返回上一层\033[0m")
exit_flag = False
while not exit_flag:
for i in map:
print(i)
user_choice = input("请选择您的国家:")
if user_choice in map:
while not exit_flag:
for j in map[user_choice]:
print(j)
user_choice_1 = input("请选择您的城市:")
if user_choice_1 in map[user_choice]:
while not exit_flag:
for p in map[user_choice][user_choice_1]:
print(p)
user_choice_2 = input("请选择您所在的区县:")
if user_choice_2 in map[user_choice][user_choice_1]:
while not exit_flag:
for k in map[user_choice][user_choice_1][user_choice_2]:
print(k)
user_choice_3 = input("请选择您所在的乡镇:")
if user_choice_3 in map[user_choice][user_choice_1][user_choice_2]:
for f in map[user_choice][user_choice_1][user_choice_2][user_choice_3]:
print(f)
user_choice_4 = input("\033[31;1m已到最后一层,请选择<b>或<q>:\033[0m")
if user_choice_4 == "q":
exit_flag = True
elif user_choice_4 == "b":
pass
elif user_choice_3 == "q":
exit_flag = True
elif user_choice_3 == "b":
break
else:
print("输入有误请重新输入.....")
elif user_choice_2 == "q":
exit_flag = True
elif user_choice_2 == "b":
break
else:
print("输入有误请重新输入.....")
elif user_choice_1 == "q":
exit_flag = True
elif user_choice_1 == "b":
break
else:
print("输入有误请重新输入.....")
elif user_choice == "b":
print("已返回,请重新输入。")
elif user_choice == "q":
print("再见")
break
else:
print("您输入的国家不存在,请重新输入.....")

多级菜单初写(dict使用)的更多相关文章

  1. zTree下拉菜单多级菜单多选实现

    惯例,先上图: 这是在一个项目中,为了满足样式美观.多级菜单以及多选而将zTree插件更改过后的效果. 在实际的开发过程中,本来zTree也是可以满足需求的,但是zTree多选的话需要checkbox ...

  2. Python作业之多级菜单

    作业之多级菜单 菜单实现要求: 1. 列出菜单选择供选择 2. 选择对应内容进入下一级菜单 3. 任何时候都可以选择退出程序或返回上一级菜单 具体代码如下: goods = {'华为':{'A系':{ ...

  3. 原生JS封装创建多级菜单函数

    手写一个使用原生JS封装的多级菜单的函数,满足以下几点需求. 子类层级不确定,可根据数据自动生成多级菜单. 操作便捷,只需传入一个HTML标签. 缺点: 需要满足特定的数据结构 废话不多说,展示代码. ...

  4. Vue2 实现树形菜单(多级菜单)功能模块

    结构示意图 ├── index.html ├── main.js ├── router │ └── index.js # 路由配置文件 ├── components # 组件目录 │ ├── App. ...

  5. day1作业二:多级菜单操作(函数实现)

    作业二:多级菜单 (1)三级菜单 (2)可以次选择进入各子菜单 (3)所需新知识点:列表.字典 要求:输入back返回上一层,输入quit退出整个程序 本示例的三级菜单是一个yaml文件格式,格式如下 ...

  6. s12-day01-work02 python多级菜单展示

    README # README.md # day001-work-2 @南非波波 功能实现:多级菜单展示 流程图: ![](http://i.imgur.com/VTPPhZU.jpg) 程序实现: ...

  7. 2_python之路之多级菜单

    python之路之多级菜单 1.使用知识点 (1)列表,字典的使用 (2)if条件判断语句 (3)for/while循环的使用 2.代码详细 #!/usr/bin/env python # _*_ c ...

  8. [前端随笔][Vue] 多级菜单实现思路——组件嵌套

    说在前面 本篇记录学习了vue-element-admin中的多级菜单的实现 [传送门] @vue/cli 4.2.2:vuex:scss:组件嵌套 正文 创建项目 npm create 项目名 // ...

  9. java生成多级菜单树

    使用java实现一个多级菜单树结构 先上数据库 ps_pid字段很重要,是父级菜单的id Menu类 Menu类要新增一个字段,用来存放子菜单 /** * 子菜单列表 */ private List& ...

随机推荐

  1. 基于.NetCore3.1搭建项目系列 —— 使用Swagger做Api文档 (下篇)

    前言 回顾上一篇文章<使用Swagger做Api文档 >,文中介绍了在.net core 3.1中,利用Swagger轻量级框架,如何引入程序包,配置服务,注册中间件,一步一步的实现,最终 ...

  2. 050.集群管理-Prometheus+Grafana监控方案

    一 Prometheus概述 1.1 Prometheus简介 Prometheus是由SoundCloud公司开发的开源监控系统,是继Kubernetes之后CNCF第2个毕业的项目,在容器和微服务 ...

  3. MySQL----多表操作

    ##多表之间的关系 1.一对一(了解) * 如:人和身份证 * 分析:一个人只有一个身份证,一个身份证只能对应一个人. 2.一对多(多对一) * 如:部门和员工 * 分析:一个部门有多个员工,一个员工 ...

  4. 动态网站项目(Dynamic Web Project)CRUD(增删改查)功能的实现(mvc(五层架构)+jdbc+servlet+tomcat7.0+jdk1.8),前端使用JSP+JSTL+EL组合

    代码分享链接 https://pan.baidu.com/s/1UM0grvpttHW9idisiqa6rA    提取码:hx7c 图示           项目结构 1.SelectAllUser ...

  5. Asp.Net Core 学习教程2、使用ASP.NET Core中的RazorPages

    1.创建一个Asp.Net Core Web应用程序 1.1.打开VS2019 新建项目 1.2.选好项目位置后进入线面界面,选择Web应用程序 1.3.进去的页面结构如下 Pages 文件夹:包含 ...

  6. 2020年PHP 面试问题(三)

    2020年PHP 面试问题(一) 2020年PHP 面试问题(二) 一.数据库三范式 第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解: 第二范式:2NF是对记录的惟一性约束,要求 ...

  7. Magenta Demos Magenta 实战代码

    Magenta 实战代码 这个仓库包含了很多 Magenta 模型的实现.看 Magenta 库以及模型,看我们的主仓库:https://github.com/tensorflow/magenta A ...

  8. TensorFlow 一步一步实现卷积神经网络

    欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! TensorFlow 从入门到精通系列教程: http://www ...

  9. django中 对Mysql数据库的建表

    Django操作Mysql数据库: 1.1 在settings中,配置数据库相关参数,所以无需修改,这里我们看一下: DATABASES = { 'default': { # 这里可以指定使用的数据库 ...

  10. cento升级openssl依旧显示老版本

    不久前拿到了一季度的服务器漏洞扫描报告,还是一些老生常谈的软件.按照报告上的漏洞一个个处理,开始升级openssl的时候一切都很顺利,上传源码包,解压,编译,安装,全部都没有报错.opessl --v ...