python 三级联动
china_map
=
{
"华南"
:{
"广东"
:[
"广州市"
,
"佛山市"
,
"深圳市"
,
"东莞市"
],
"广西"
:[
"南宁市"
,
"柳州市"
,
"桂林市"
,
"北海市"
],
"海南"
:[
"海口市"
,
"三亚市"
,
"三沙市"
,
"儋州市"
]
},
"华东"
:{
"上海"
:[
"黄浦区"
,
"卢湾区"
,
"徐汇区"
,
"长宁区"
,
"普陀区"
],
"安徽"
:[
"合肥市"
,
"芜湖市"
,
"淮南市"
,
"马鞍山市"
],
"江苏"
:[
"南京市"
,
"无锡市"
,
"徐州市"
,
"常州市"
,
"苏州市"
]
},
"华北"
:{
"北京"
:[
"东城区"
,
"西城区"
,
"朝阳区"
,
"丰台区"
,
"石景山区"
,
"海淀区"
],
"山西"
:[
"太原市"
,
"大同市"
,
"阳泉市"
,
"长治市"
],
"河北"
:[
"石家庄市"
,
"唐山市"
,
"秦皇岛市"
,
"邢台市"
]
},
"华中"
:{
"湖北"
:[
"武汉市"
,
"黄石市"
,
"十堰市"
,
"十堰市"
],
"河南"
:[
"郑州市"
,
"开封市"
,
"洛阳市"
,
"平顶山市"
],
"湖南"
:[
"长沙市"
,
"株洲市"
,
"衡阳市"
,
"邵阳市"
]
},
"西南"
:{
"重庆"
:[
"万州区"
,
"涪陵区"
,
"渝中区"
,
"大渡口区"
],
"四川"
:[
"成都市"
,
"自贡市"
,
"攀枝花市"
,
"德阳市"
],
"贵州"
:[
"贵阳市"
,
"六盘水市"
,
"遵义市"
,
"安顺市"
],
},
"特别行政区"
:{
"香港"
:[
"屯门"
,
"弯仔"
,
"北角"
,
"西贡"
],
"澳门"
:[
"花地玛堂区"
,
"圣安多尼堂区"
,
"大堂区"
,
"望德堂区"
],
},
}
print
(
"-------------------------------------------------"
)
print
(
"+ +"
)
print
(
"+ +"
)
print
(
"+ 欢迎来到大中华地区查询系统地 +"
)
print
(
"+ +"
)
print
(
"+ +"
)
print
(
"-------------------------------------------------"
)
print
(
"大中华地区一级划分:"
)
for
i
in
china_map:
#遍历字典的key,列出大中华地区的名字
print
(i)
print
(
"-------------------------------------------------"
)
jump_flag
=
False
#用于跳出外循环
for
i
in
range
(
3
):
#外循环,指定循环3次,3次外循环完了,就退出程序
greater_china_name
=
input
(
"请输入你要查看的大中华地区名字:"
)
if
greater_china_name
in
china_map:
#检查输入的地区是否在地图中,如果地区名字3次输入错误,程序退出
gc_name
=
china_map[greater_china_name]
province_name
=
gc_name.keys()
#使用输入的信息作为key,取出省信息,存在字典中
while
True
:
#内循环,死循环,不指定循环次数,通过break或者flag跳出
print
(
"------------------包含的省名字二级:-----------------"
)
#分隔线
for
i
in
province_name:
#遍历列表,取出省名字,打印出来
print
(i)
print
(
"-------------------------------------------------"
)
#分隔线
sheng_name_input
=
input
(
"请输入你要查看的省名字:"
)
if
sheng_name_input
in
province_name:
#判断输入的省名字是否在地区列表中
shi_name
=
china_map[greater_china_name][sheng_name_input]
#取出省中有哪些市,存在列表中
print
(
"--------------包含的城市名三级:-------------------"
)
#分隔线
for
i
in
shi_name:
#遍历列表,取出地区市名字,打印出来
print
(i)
print
(
"------------------------------------------------"
)
#分隔线
if
sheng_name_input
not
in
province_name:
#如果输入的省名字不在在地区列表中
print
(
"输入的省名字不对,请重新输入"
)
continue
#跳出当次迭代,开始下一次迭代循环,直到地市名字输入正确为止(不停的要求输入)
back_or_quit
=
input
(
"请问是否退出?按b:Back是返回上一级菜单;按q:Exit是退出整个程序"
)
#显示完地区市后,就要退出程序了,一个是全部退出,一个是返回上一级菜单
if
back_or_quit
=
=
"q"
:
jump_flag
=
True
#用于跳出外循环
break
#跳出while内循环
if
back_or_quit
=
=
"b"
:
continue
# 跳出当次迭代,开始下一次迭代循环,重新输入省处,返回上一步
print
(
"你输入的信息有误,请重新输入"
)
if
jump_flag:
#跳出外循环的条件满足
break
#跳出外循环
else
:
#上面的3次for循环正常执行完毕,else才会执行,如果是不正常退出(break),else不会执行
print
(
"3次输入错误,程序退出"
)
python 三级联动的更多相关文章
- python三级联动
#以字典的形式 保存相关省市数据 menu={ '北京':{ '朝阳':{ '国贸':{ 'CICC':{}, 'HP':{}, '银行':{}, 'CCTV':{} }, '望京':{ '陌陌':{ ...
- Python实现用户交互,显示省市县三级联动的选择
题目:Python实现用户交互,显示省市县三级联动的选择 定义的字典为: dic = { "江西": { "萍乡": ["安源", &quo ...
- PyQt5--基础篇:用eric6工具实现三级联动效果
今天给大家介绍下python gui界面的三级联动效果,我们用工具eric6来实现,先看下效果图. 首先我们先创建项目linkage,再新建窗体进入到Qt设计师工具开始设计界面,完成后保存并退出. 在 ...
- Django之上传图片,分页,三级联动
Django1.8.2中文文档:Django1.8.2中文文档 上传图片 配置上传文件保存目录 1)新建上传文件保存目录. 2)配置上传文件保存目录. 后台管理页面上传图片 1)设计模型类. 2)迁移 ...
- js封装的三级联动菜单(使用时只需要一行js代码)
前言 在实际的项目开发中,我们经常需要三级联动,比如省市区的选择,商品的三级分类的选择等等. 而网上却找不到一个代码完整.功能强大.使用简单的三级联动菜单,大都只是简单的讲了一下实现思路. 下面就给大 ...
- 利用select实现年月日三级联动的日期选择效果
× 目录 [1]演示 [2]规划 [3]结构生成[4]算法处理 前面的话 关于select控件,可能年月日三级联动的日期选择效果是最常见的应用了.本文是选择框脚本的实践,下面将对日期选择效果进行详细介 ...
- jQuery省市区三级联动插件
体验效果:http://hovertree.com/texiao/bootstrap/4/支持PC和手机移动端. 手机扫描二维码体验效果: 代码如下: <!DOCTYPE html> &l ...
- jQuery - 全国省市县三级联动
最近有空用jquery做了一个全国省市县的三级联动,在以后或许可以用的到 ,遗憾的是我还没用封装,等有空看能不能封装成一个插件 废话不多说,贴上代码: <!doctype html> &l ...
- 省市区三级联动 pickerView
效果图 概述 关于 省市区 三级联动的 pickerView,我想大多数的 iOS 开发者应该都遇到过这样的需求.在遇到这样的需求的时候,大多数人都会觉的这个很复杂,一时无从下手.其实真的没那么复杂. ...
随机推荐
- js 带遮罩层的弹出层
最近有个小伙伴问我关于mui的带遮罩层的弹出层,我给他发了个相关demo,但是因为他是新手的原因没有看懂,所以我写了一个单纯的原生的带遮罩层的弹出层dome.写这篇微博希望可以帮到需要的小伙伴. &l ...
- Java中的clone()----深复制,浅复制
这篇文章主要介绍了Java中对象的深复制(深克隆)和浅复制(浅克隆) ,需要的朋友可以参考下 1.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他 ...
- Java第四次上课博文动手动脑
Java第四次上课博文动手动脑 1. 查看String.equals()方法 public class StringEquals { /** * @param args the command ...
- 2.关于Apache Spark
关于Apache Spark 1 Why Apache Spark 2 关于Apache Spark 3 如何安装Apache Spark 4 Apache Spark的工作原理 5 spark弹性分 ...
- Linux(3)用户和权限管理
用户, 权限管理 Linux中root账号通常用于系统的维护和管理, 它对操作系统的所有部分具有不受限制的访问权限 在Unix/Linux安装过程中, 系统会自动创建许多用户账号, 而这些默认的用户就 ...
- Openresty使用Thrift安装步骤
最新想用Golang与Openresty相互通讯调用,使用RPC协议来实现,后来研究最终选择了Thrift:主要还是FB实现了支持Lua和Go模块,直接编译就可以成功嵌套使用,非常方便:研究了两天最后 ...
- Hibernate与 MyBatis的比较(转)
第一章 Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.NET,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀 ...
- iOS设置圆角的常用方法
//第一种方法:最常用的方法,但是性能最差 UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100 ...
- 转载的log4cplus使用指南
以下转载的log4cplus使用指南的版本可能不是最新,仅作参考了解.应以最新安装包中的示例代码为准. 目 录1 Log4cplus简介 52 安装方法 53 主要类说明 64 ...
- NYOJ 5 Binary String Matching
Binary String Matching 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 Given two strings A and B, whose alp ...