题目:Python实现用户交互,显示省市县三级联动的选择

定义的字典为:

  dic = {   

      "江西": {    "萍乡": ["安源", "彭高", "上栗"],    "新余": ["良山", "新钢", "兴安岭"],    },  

      "北京": {    "大兴区": ["礼贤镇", "魏善庄镇", "北臧村镇"],    "昌平区": ["沙河", "化庄", "白浮泉"],    },   

      "福建": {    "莆田": ["荔城", "西天尾", "九化山"],    "厦门": ["湖里", "思明", "海仓"],    }  

 }

分析:

  大体步骤分为以下三步:

  1、用户输入一个省份时,判断用户输入的省份是否在字典里。

  2、当用户输入的省份在字典里时,将用户输入的这个省份所对应的所有值——该省份下的所有城市的字典取出来。

  3、将该省分所对应的所有城市打印出来后,当用户再输入要查找的城市时,如果存在则将相对应城市下的县取出来。

代码:

dic = {
"江西": {
"萍乡": ["安源", "彭高", "上栗"],
"新余": ["良山", "新钢", "兴安岭"],
},
"北京": {
"大兴区": ["礼贤镇", "魏善庄镇", "北臧村镇"],
"昌平区": ["沙河", "化庄", "白浮泉"],
},
"福建": {
"莆田": ["荔城", "西天尾", "九化山"],
"厦门": ["湖里", "思明", "海仓"],
}
}
print('可查询的省份:江西、北京、福建') # 让用户输入要查询的省份。
while True:
province = input('请输要查询的省份:') # 当用户输入的省份不在要查询的字典中时,跳出本次循环,继续让用户输入。
if not province in dic:
print('输入错误,请重新输入')
continue # 当用户输入的要查询的省份在字典中时,跳出循环。
break # 将用户输入的省份去取出字典中的指定的省份(键)的值——市级字典,
# 然后遍历每个市级字典,遍历的的结果是取出市级字典中每个键。
for i in dic[province]:
print(i,end = ' ') # 取出的市级字典中的每个城市(键),并作一行显示。 # 让用户输入要查询的城市。
while True:
city = input('请输入要查询的城市:') # 当用户输入的城市不在要查询的子字典中时,跳出本次循环,继续让用户输入。
if not city in dic[province]:
print('输入错误')
continue # 当用户输入的要查询的城市在子字典中时,跳出循环。
break # 将用户输入的城市去取出子字典中的指定的城市(键)的值——县级列表
# 然后遍历每个镇县级列表,遍历的的结果是取出县级列表中的每个县名。
for j in dic[province][city]:
print(j,end=' ')

  

Python实现用户交互,显示省市县三级联动的选择的更多相关文章

  1. 项目总结01:JSP mysql SpringMvc下中国省市县三级联动下拉框

    JSP mysql SpringMvc下中国省市县三级联动下拉框 关键词 JSP  mysql数据库  SpringMvc  ajax   Controller层  Service层  中国地区  省 ...

  2. wex5 实战 省市县三级联动与地址薄同步

    无论是商城,还是快递,都要用到省市县三级联动,和地址薄,今天就以实战来制作,难点有3个: 1:三级联动,有wex5组件实现,相对简单,实战里对行数据进行了拼接 2:  地址薄选项,利用inputSel ...

  3. jQuery - 全国省市县三级联动

    最近有空用jquery做了一个全国省市县的三级联动,在以后或许可以用的到 ,遗憾的是我还没用封装,等有空看能不能封装成一个插件 废话不多说,贴上代码: <!doctype html> &l ...

  4. 省市县三级联动 sql语句

    发现在网上的省市县三级联动大部分是mysql的.就算是sqlserver的,也不准确.于是就把mysql的给改了下,适用sqlserver.sql语句如下: CREATE TABLE Dic_Area ...

  5. Android 省市县 三级联动(android-wheel的使用)[转]

    转载:http://blog.csdn.net/lmj623565791/article/details/23382805 今天没事跟群里面侃大山,有个哥们说道Android Wheel这个控件,以为 ...

  6. Android 省市县 三级联动(android-wheel的使用)

    转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/23382805 今天没事跟群里面侃大山,有个哥们说道Android Wheel这个 ...

  7. php仿经典省市县三级联动

    之前有个需求要写个类似省市县三级联动的页面,于是,网上找了点资料看了下,其实原理很简单: 当我们选择一级栏目中某条记录的时候,会获取该栏目的vaule值,并发起ajax请求,后台根据这个vaule值, ...

  8. Day 16 之二 省市县三级联动

    摘录自:雨神,供参考! province_dic = { "河北": { "石家庄": ["鹿泉", "藁城", &qu ...

  9. android:省市县三级联动(基于json和spring)

    一.请看效果图": 二.程序的代码: 1.MainActivity.java package com.loveplusplus.loader.demo.ui; import org.json ...

随机推荐

  1. rbac组件之角色操作(二)

    为了与stark组件分离,形成独立的模块,所以rbac数据表的操作需要单独进行操作,对角色表的操作. urls.py urlpatterns = [ re_path(r'^roles/list/$', ...

  2. day 21 03 补全异常处理

    day 21 03  异常处理(补全) 1.异常处理的整体几个语句: try: .......#有可能出错的代码 ret=int(input('number >>>')) print ...

  3. vue-router 根据路由动态添加目录 控制目录权限

    <template> <el-row class="el-menu" > <el-menu router :default-active='$rout ...

  4. Uva 12657 移动盒子(双向链表)

    题意: 你有一行盒子,从左到右依次编号为1, 2, 3,…, n.可以执行以下4种指令:1 X Y表示把盒子X移动到盒子Y左边(如果X已经在Y的左边则忽略此指令).2 X Y表示把盒子X移动到盒子Y右 ...

  5. jmap Unable to open socket file解决

    pid:Unable to open socket file: target process not responding or HotSport VM not loadedThe -F option ...

  6. private关键字

    Student.java /* * 学生类 * * 通过对象直接访问成员变量,会存在数据安全问题 * 这个时候,我们就想能不能不让外界对象直接访问成员变量呢? * 答案:能 * 如何实现呢? * pr ...

  7. ICPC模板排版工具

    感谢参考:https://www.cnblogs.com/palayutm/p/6444833.html 额外安装texlive, ubuntu环境提供参考: 1.下载镜像包 https://mirr ...

  8. HDU1811 并查集+拓扑排序

    题目大意: 判断是否能根据给定的规则将这一串数字准确排序出来 我们用小的数指向大的数 对于相等的情况下,将二者合并到同一个并查集中,最后抽象出来的图上面的每一个点都应该代表并查集的标号 #includ ...

  9. [luoguP1098] 字符串的展开(模拟)

    传送门 一个模拟. 代码 #include <cstdio> #include <cstring> #include <iostream> #define iswo ...

  10. linux ftp服务器搭建

    作为服务器的机器IP:192.168.124.129  主机名:Centos 操作系统:CentOS 5.5 需求:匿名用户可以下载公共目录里边内容,本地用户登录有rwx权限 软件安装 1.  准备测 ...