摘录自:雨神,供参考!

province_dic = {
"河北": {
"石家庄": ["鹿泉", "藁城", "元氏"],
"邯郸": ["永年", "涉县", "磁县"],
"唐山": ["唐山1", "唐山2", "唐山3", "唐山4", "唐山5"]
},
"河南": {
"郑州": ["新郑", "新密", "金水区"],
"安阳": ["安阳县", "滑县", "汤阴县", "滑县", "张家庄"],
"许昌": ["魏都区","长葛","禹州"],
"焦作": ["焦作", "焦作", "焦作","焦作","焦作","焦作"],
"新乡": ["新乡1", "新乡2", "新乡3", "新乡4", "新乡5"],
"洛阳": ["洛阳1","洛阳2","洛阳3","洛阳4","洛阳5","洛阳6"]
},
"山西": {
"太原": ["太原1", "太原2", "太原3", "太原4", "太原5"],
"运城": ["运城1", "运城2", "运城3"],
"阳泉": ["阳泉1", "阳泉2", "阳泉3", "阳泉4"],
"大同": ["大同1", "大同2", "大同3", "大同4", "大同5", "大同6"]
},
"湖南":{
"长沙": ["长沙1","长沙2","长沙3"],
"湘潭": ["湘潭1","湘潭2","湘潭3"],
"岳阳": ["岳阳1","岳阳2","岳阳3","岳阳4"],
"常宁": ["常宁1","常宁2","常宁3","常宁4","常宁5","常宁6"]
}
}
province_list = []
city_list = []
county_list = []
province_tag = True
while province_tag:
province_list.clear()
for i in province_dic:
province_list.append(i)
num = 0
print( '请输入您想查询的省份:')
while(num<(len(province_list)+1)):
if(num<len(province_list)):
print(' %d-->%s' % (num+1,province_list[num]))
else:
print(' %d-->%s' % (num+1,'退出'))
num+=1
province_num = input()
if(province_num.isdigit() and int(province_num) in range(1,num+1)):
if int(province_num) == num: #退出 选择激活!此时num=5,等于退出
province_tag = False
break
m_province = province_list[int(province_num)-1]
print('您选择的省份为%s' % m_province)
city_tag = True
city_list.clear()
for i in province_dic.get(m_province):
city_list.append(i)
else:
print('请按照提示输入,谢谢')
continue
while city_tag:
num=0
print( '请输入您想查询的市:')
while(num<(len(city_list)+2)):
if(num<len(city_list)):
print(' %d-->%s' % (num+1,city_list[num]))
elif(num==len(city_list)):
print(' %d-->%s' % (num+1,'返回上一级'))
else:
print(' %d-->%s' % (num+1,'退出'))
num+=1
city_num = input()
if(city_num.isdigit() and int(city_num) in range(1,num+1)):
if(int(city_num)==num-1):
break
if(int(city_num)==num):
province_tag=False
break
m_city = city_list[int(city_num)-1]
print('您选择的市为%s' % m_city)
county_list.clear()
for i in (province_dic.get(m_province)).get(m_city):
county_list.append(i)
else:
print('请按照提示输入,谢谢')
continue
while city_tag:
num=0
print( '请输入您想查询的县(区):')
while(num<(len(county_list)+2)):
if(num<len(county_list)):
print(' %d-->%s' % (num+1,county_list[num]))
elif(num==len(county_list)):
print(' %d-->%s' % (num+1,'返回上一级'))
else:
print(' %d-->%s' % (num+1,'退出'))
num+=1
county_num = input()
if(county_num.isdigit() and int(county_num) in range(1,num+1)):
if(int(county_num)==num-1):
break
if(int(county_num)==num):
city_tag=False
province_tag=False
break
m_county = county_list[int(county_num)-1]
print('您选择的县(区)为%s' % m_county)
temp_num = input('''
1-->重新选择
2-->返回上级
3-->重新开始
4-->退出
''')
if(temp_num.isdigit() and int(temp_num) in range(1,5)):
if(temp_num==''):
continue
if(temp_num==''):
break
if(temp_num==''):
city_tag=False
break
if(temp_num==''):
city_tag=False
province_tag=False
break
else:
print('请按照提示输入,谢谢')
continue
else:
print('请按照提示输入,谢谢')
continue

雨神之省市县三级联动

# tag = True
# while tag:
# for shengming in province_dic:
# print(shengming)
# shengming = input("哪个省:(q退出!)")
# if shengming.strip() in province_dic:
# while tag:
# for chengshiming in province_dic[shengming.strip()]:
# print(chengshiming)
# chengshiming = input("哪个城市:(q退出!b返回)")
# if chengshiming.strip() in province_dic[shengming.strip()]:
# while tag:
# for quming in province_dic[shengming.strip()][chengshiming.strip()]:
# print(quming)
# quming = input("q退出!b返回!")
# if quming.strip() == 'q':
# tag = False
# elif quming.strip() == "b":
# break
# elif chengshiming.strip() == "q":
# tag = False
# elif chengshiming.strip() == 'b':
# break
# elif shengming.strip() == "q":
# tag = False
# print("你已退出本系统,假期愉快!") # current_layers = province_dic
# layers = [province_dic]
#
# while True:
# for i in current_layers:
# print(i)
# choice = input(">>: ").strip()
# if choice in current_layers:
# layers.append(current_layers)
# current_layers = current_layers[choice]
# elif choice.upper() == "B":
# current_layers = layers[-1]
# layers.pop()

学无止境

Day 16 之二 省市县三级联动的更多相关文章

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

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

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

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

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

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

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

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

  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. 项目总结01:JSP mysql SpringMvc下中国省市县三级联动下拉框

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

  9. 省市县三级联动js代码

    省市县三级联动菜单,JS全国省市县(区)联动代码,一般可以用于用户注册或分类信息二手交易网站,需要的朋友直接复制代码就可以用了,不过有朋友反馈说缺少某些城市,具体缺少哪个尚不知,请想用的朋友自己补全吧 ...

随机推荐

  1. UML类图中的六种线条与六种关系

    1.泛化(generalize) 实线空心三角箭头. 2.实现(realize) 虚线空心三角箭头. 3.聚合(aggregation) 实线空心菱形箭头. 4.组合(composition) 实线实 ...

  2. Ajax请求出现406的原因

    一般出现406错误有两种可能: 1.如果后缀是html是不能响应json数据的.需要修改后缀名. 在做伪静态化过程中,以.html结尾的后缀,做post请求时,不能响应json格式,这是spring官 ...

  3. WCF_基础学习

    1.https://www.cnblogs.com/swjian/p/8126202.html 2.https://www.cnblogs.com/dotnet261010/p/7407444.htm ...

  4. k8s的高级调度方式

    默认的scheduler的调度过程:1.预选策略:从所有节点当中选择基本符合选择条件的节点.2.优选函数:在众多符合基本条件的节点中使用优选函数,计算节点各自的得分,通过比较进行排序.3.从最高得分的 ...

  5. Python爬虫系列-分析Ajax请求并抓取今日头条街拍图片

    1.抓取索引页内容 利用requests请求目标站点,得到索引网页HTML代码,返回结果. 2.抓取详情页内容 解析返回结果,得到详情页的链接,并进一步抓取详情页的信息. 3.下载图片与保存数据库 将 ...

  6. LeetCode(219) Contains Duplicate II

    题目 Given an array of integers and an integer k, find out whether there are two distinct indices i an ...

  7. hihocoder1175 拓扑排序2

    #1175 : 拓扑排序·二 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho所在学校的校园网被黑客入侵并投放了病毒.这事在校内BBS上立刻引起了大家的讨论 ...

  8. Android开发工具——Android Studio调试技巧

    .调试的两种方式 到目前,调试的相关基础我们已经介绍完了,但是不少同学对Android Studio中这两个按钮感到困惑:Debug和Attach process. 这里我们就简单介绍一下这两者的区别 ...

  9. Mysql - 安装及初始化设置

    1. 下载mysql-5.7.13-tar.gz http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.13-linux-glibc2.5-x8 ...

  10. SDOJ 3696 Tree

    描述 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰好有need条白色边的生成树. 题目保证有解. 输入 第一行V,E,need分别表示点数,边数和需要的白色边数. 接下来E行 每行 ...