摘录自:雨神,供参考!

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. 【线段树分治 01背包】loj#6515. 「雅礼集训 2018 Day10」贪玩蓝月

    考试时候怎么就是没想到线段树分治呢? 题目描述 <贪玩蓝月>是目前最火爆的网页游戏.在游戏中每个角色都有若干装备,每件装备有一个特征值 $w$ 和一个战斗力 $v$ .在每种特定的情况下, ...

  2. [LUOGU] P4251 [SCOI2015]小凸玩矩阵

    行列看成点,格子看成边,二分一个边权,删去大于它的边,新图上的最大流>k则答案可以更优,小于k则调整左边界. #include<algorithm> #include<iost ...

  3. .pyc文件的结构体PyCodeObject

    python执行程序时生成的pyc文件里面是,PyCodeObject 的结构体构成,每个命名空间(函数名.import模块等)都会形成一个core block,一个python程序的所有命名空间生成 ...

  4. 01 Web框架介绍

    一.Web框架本质 所有的web应用程序本质上都是socket,用户的浏览器其实就是一个socket客户端. python中常用的web框架有: Django Flask web.py WSGI(we ...

  5. Ubuntu 16.04中安装谷歌Chrome浏览器

    1.进入 Ubuntu 16.04 桌面,按下 Ctrl + Alt + t 键盘组合键,启动终端. 2.在终端中,输入以下命令: sudo wget https://repo.fdzh.org/ch ...

  6. w3resource_MySQL练习:Basic_select_statement

    w3resource_MySQL练习题:Basic_select_statement 1. Write a query to display the names (first_name, last_n ...

  7. leetcode-5-basic

    解题思路: 设两个变量land和sink,land的值是1的数量,sink表示内部的边.result = land*4-sink*2.按行扫描得到land, 同时得到同一行中内部边的数目:然后按列扫描 ...

  8. 如何生成带注释的DLL文件

    背景: 实际上并不是生成带有注释的DLL文件,而是同时生成一个XML文件,用来显示注释. 为什么要使用DLL文件,在C#编程的过程中,一直在使用DLL文件,如System.dll 方法: 1,创建类库 ...

  9. 【报错】invalid or unexpected token

    结果发现是把英文的,写成了中文字符,系统没法识别.

  10. read(byte[] b)与readFully(byte[] b)

    转载于:http://yyzjava.iteye.com/blog/1178525 要搞清楚read(byte[] b)和readFully(byte[] b)的区别,可以从以下方面着手分析: 1.代 ...