Python实现用户交互,显示省市县三级联动的选择
题目: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实现用户交互,显示省市县三级联动的选择的更多相关文章
- 项目总结01:JSP mysql SpringMvc下中国省市县三级联动下拉框
JSP mysql SpringMvc下中国省市县三级联动下拉框 关键词 JSP mysql数据库 SpringMvc ajax Controller层 Service层 中国地区 省 ...
- wex5 实战 省市县三级联动与地址薄同步
无论是商城,还是快递,都要用到省市县三级联动,和地址薄,今天就以实战来制作,难点有3个: 1:三级联动,有wex5组件实现,相对简单,实战里对行数据进行了拼接 2: 地址薄选项,利用inputSel ...
- jQuery - 全国省市县三级联动
最近有空用jquery做了一个全国省市县的三级联动,在以后或许可以用的到 ,遗憾的是我还没用封装,等有空看能不能封装成一个插件 废话不多说,贴上代码: <!doctype html> &l ...
- 省市县三级联动 sql语句
发现在网上的省市县三级联动大部分是mysql的.就算是sqlserver的,也不准确.于是就把mysql的给改了下,适用sqlserver.sql语句如下: CREATE TABLE Dic_Area ...
- Android 省市县 三级联动(android-wheel的使用)[转]
转载:http://blog.csdn.net/lmj623565791/article/details/23382805 今天没事跟群里面侃大山,有个哥们说道Android Wheel这个控件,以为 ...
- Android 省市县 三级联动(android-wheel的使用)
转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/23382805 今天没事跟群里面侃大山,有个哥们说道Android Wheel这个 ...
- php仿经典省市县三级联动
之前有个需求要写个类似省市县三级联动的页面,于是,网上找了点资料看了下,其实原理很简单: 当我们选择一级栏目中某条记录的时候,会获取该栏目的vaule值,并发起ajax请求,后台根据这个vaule值, ...
- Day 16 之二 省市县三级联动
摘录自:雨神,供参考! province_dic = { "河北": { "石家庄": ["鹿泉", "藁城", &qu ...
- android:省市县三级联动(基于json和spring)
一.请看效果图": 二.程序的代码: 1.MainActivity.java package com.loveplusplus.loader.demo.ui; import org.json ...
随机推荐
- Python之模块和包导入
Python之模块和包导入 模块导入: 1.创建名称空间,用来存放模块XX.py中定义的名字 2.基于创建的名称空间来执行XX.py. 3.创建名字XX.py指向该名称空间,XX.名字的操作,都是以X ...
- LeetCode(53) Maximum Subarray
题目 Find the contiguous subarray within an array (containing at least one number) which has the large ...
- LeetCode 167. Two Sum II – Input array is sorted
Given an array of integers that is already sorted in ascending order, find two numbers such that the ...
- Vue如何引入icon图标
1.下载icon图标,推荐icomoon网站,里面有大量的矢量图标,也可以自定义,当然你也可以去阿里巴巴矢量图标库下载你所需要的小图标.点击进入icomoon网站点击右上角“IcoM ...
- centos相关
查看虚拟机里的Centos7的IP:ip addr或者ifconfig ---https://blog.csdn.net/dancheren/article/details/73611878 Cen ...
- 有三个数a,b,c要求按大小顺序将其输出<if,else语句的学习>
#include <stdio.h> /* 有三个数a,b,c要求按大小顺序将其输出 ----------soulsjie 20170525------ */ void main(){ i ...
- 九度oj 题目1058:反序输出
题目1058:反序输出 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:9677 解决:3495 题目描述: 输入任意4个字符(如:abcd), 并按反序输出(如:dcba) 输入: 题目可 ...
- [luoguP1021] 邮票面值设计(DFS + dp)
传送门 数据很小,可以DFS,判断的时候用背包DP 然而不知到枚举到哪里.... 首先枚举前可以求一遍题目中的MAX,下一层DFS的时候可以只枚举到MAX + 1,因为再往上就必定会出现断层 蒟蒻很菜 ...
- Linux下C编程入门(7)
Linux下项目同步工具介绍git和github 一.远程仓库工具github 1. 一.本地操作工具git 1.
- webview的设置
设置支持js: webView.getSettings().setJavaScriptEnabled(true); 设置无图模式: webView.getSettings().setBlockNetw ...