省市县_me
# question 11
import ast
from functools import reduce
def file_read():
with open('D:\\pytharm\\jichuyufa\\day2\\pro_cty_con.txt', 'r', encoding='utf8') as f:
san_dic = ast.literal_eval(f.read())
return san_dic
dic = file_read()
print(dic)
ke = list(dic.keys())
print('provinces:', ke)
# print('-----------------')
cits = []
township = []
for i in ke:
# print(dic[i])
for j in dic[i]:
# print(j)
cits.append(j)
township.append(dic[i][j])
# print(dic[i][j])
print('citys:', cits)
# print('-----------------')
# print('township:', township)
township = reduce(lambda x, y: x + y, township)
print('township:', township)
def file_wi(dic_add):
with open('D:\\pytharm\\jichuyufa\\day2\\pro_cty_con.txt', 'w+', encoding='utf8') as f:
f.write(dic_add)
# pass
def add_dic(dic):
dic_insert = {}
dic_insert1 = {}
li_insert = []
new_flag = True
while new_flag:
pro_new = input('输入Q结束:输入q返回,输入要添加的省')
if pro_new == 'q':
break
elif pro_new == 'Q':
exit()
elif pro_new in ke:
print('省份已经存在')
cit_bool = input('输入y或者Y,要在该省添加城市')
if cit_bool.lower() == 'y':
# pass
cty_new = input('输入Q结束:输入q返回,输入要添加的市')
if cty_new == 'q':
break
elif cty_new == 'Q':
exit()
elif cty_new in cits:
print('该城市已经存在')
town_bool = input('输入y或者Y,要在该城市添加县')
if town_bool.lower() == 'y':
while True:
township_new = input('输入Q结束:输入q返回,输入要添加的县')
if township_new == 'q':
break
elif township_new == 'Q':
exit()
elif township_new in township:
print('该县已经存在')
else:
print(1)
# 新数据构造字典
dic[pro_new][cty_new].append(township_new)
new_flag = False
else:
continue
else:
while True:
township_new = input('输入Q结束:输入q返回,输入要添加的县')
if township_new == 'q':
break
elif township_new == 'Q':
exit()
elif township_new in township:
print('该县已经存在')
else:
print(1)
# 新数据构造字典
li_insert.append(township_new)
dic_insert1[cty_new] = li_insert
dic_city_is = dic[pro_new]
# print(dic_city_is, type(dic_city_is))
dic_city_is = dict(dic_city_is, **dic_insert1)
dic_insert[pro_new] = dic_city_is
new_flag = False
else:
continue
else:
cty_new = input('输入Q结束:输入q返回,输入要添加的市')
if cty_new == 'q':
break
elif cty_new == 'Q':
exit()
elif cty_new in cits:
print('该城市已经存在')
continue
else:
while True:
township_new = input('输入Q结束:输入q返回,输入要添加的县')
if township_new == 'q':
break
elif township_new == 'Q':
exit()
elif township_new in township:
print('该县已经存在')
else:
print(1)
# 新数据构造字典
li_insert.append(township_new)
dic_insert1[cty_new] = li_insert
dic_insert[pro_new] = dic_insert1
new_flag = False
print(dic_insert)
# 字典合并
dic = dict(dic, **dic_insert)
print(dic)
file_wi(str(dic))
# 调用添加方法
# add_dic(dic)
def dic_display(dic):
# 定义颜色
def get_color(text, color='red'):
"""
将字符串格式化为带颜色内容
:param text: 接收字符串
:param color:默认红色
:return: ->str 返回带颜色的内容
"""
color_table = {
"red": "\033[31m",
"green": "\033[32;1m",
"yellow": "\033[33;1m",
"purple": "\033[36;1m",
"end": "\033[0m", # 结束符号
}
li = [color_table.get(color), str(text), color_table["end"]]
print(li)
return ''.join(li)
while True:
province = input('输入Q结束,输入你喜欢的省:')
if len(province) == 0:
print("不能为空!")
continue
elif province == 'Q':
exit()
elif province not in dic:
print('天朝的省份都不知道,打死你哥龟孙!!!')
continue
city_list=[]
for i in dic[province]:
city_list.append(i)
# print(city_list)
print(get_color('%s省包括:%s' % (province, city_list), 'green'))
while True:
city = input("输入Q结束:输入q返回,输入城市查看县:")
if city == 'q':
break
elif city == 'Q':
exit()
elif city in city_list: #必须放倒最后否则下面的while不会被执行
township = dic[province][city]
print(get_color('%s县包括:%s' % (city,township),'yellow'))
while True:
county = input("输入Q结束,输入q返回,输入县进入县:")
if county == 'q':
break
elif county == 'Q':
exit()
elif county in township:
print(get_color(('%s县欢迎您!!!' % county),'purple'))
# 调用显示方法
# dic_display(dic)
while True:
cho_ic = input('退出输入T,显示输入1,添加输入2')
print(cho_ic)
if cho_ic == '1':
# print(11111111111111)
dic_display(dic)
elif cho_ic == '2':
# print(2222222222222)
add_dic(dic)
elif cho_ic == 'T':
break
else:
print('请按照要求输入')
数据
{'江西': {'萍乡': ['安源', '彭高', '上栗'], '新余': ['良山', '新钢', '兴安岭']}, '北京': {'大兴区': ['礼贤镇', '魏善庄镇', '北臧村镇'], '昌平区': ['沙河', '化庄', '白浮泉']}, '福建': {'莆田': ['荔城', '西天尾', '九化山'], '厦门': ['湖里', '思明', '海仓']}, '山西': {'大同': ['左权', '左权1', '左权2'], '太原': ['小店', '清徐', '榆次', '太1', '太23']}, '辽宁': {'沈阳': ['东一', '东二', '东单']}}
省市县_me的更多相关文章
- jQuery - 全国省市县三级联动
最近有空用jquery做了一个全国省市县的三级联动,在以后或许可以用的到 ,遗憾的是我还没用封装,等有空看能不能封装成一个插件 废话不多说,贴上代码: <!doctype html> &l ...
- wex5 实战 省市县三级联动与地址薄同步
无论是商城,还是快递,都要用到省市县三级联动,和地址薄,今天就以实战来制作,难点有3个: 1:三级联动,有wex5组件实现,相对简单,实战里对行数据进行了拼接 2: 地址薄选项,利用inputSel ...
- 利用JavaScript来实现省份—市县的二级联动
所谓省-市二级联动是指当选择省份下拉选择框时,市县的下拉框会根据选择的省市而有相应的市县加载出来,如下图所示选择"上海市",城市的下拉选择框只会出现上海的市县: 这种二级联动非常常 ...
- 省市县三级联动 sql语句
发现在网上的省市县三级联动大部分是mysql的.就算是sqlserver的,也不准确.于是就把mysql的给改了下,适用sqlserver.sql语句如下: CREATE TABLE Dic_Area ...
- C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 标准省市县数据的公司选择窗口实现
若全国各地有上千个分公司,加盟店,网点,那就需要一个友善的选择分公司的功能,得有标准的全国省市县的划分数据.这样有了牢靠的基础数据后,才能开发程序得心应手了.当习惯了开发一个公司内部系统时,全国性大公 ...
- Java文件处理:分离全国省市县ID(数据来自和风天气)
最近,在做第一行代码上的酷欧天气APP,但是发现书中的API已经用不了了,所以选择了和风天气的API,但是,在遍历省市县数据是遇到了麻烦,之前中国天气网是有个省市对应下一级行政区列表的,像这样: 但是 ...
- 省市县联动dropdownlist
下面就是在提交按钮的单击事件中填写代码(代码区)(前提是把省市县的数据库建好) protected void Page_Load(object sender, EventArgs e) ...
- 全中国的省市县镇乡村数据获取以及展示java源代码
第一步.准备工作(数据源+工具): 数据源(截止目前最全面权威的官方数据):http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2013/ 爬取数据的工具 ...
- 用 eric6 与 PyQt5 实现python的极速GUI编程(系列02)---- 省市县(区)下拉列表多级联动
[概览] 本文实现如下的程序: 主要步骤如下: 1.在eric6中新建项目,新建窗体 2.(自动打开)进入PyQt5 Desinger,编辑图形界面,保存 3.回到eric 6,对上一步得到的界面文件 ...
随机推荐
- 《利用Python进行数据分析》笔记---第5章pandas入门
写在前面的话: 实例中的所有数据都是在GitHub上下载的,打包下载即可. 地址是:http://github.com/pydata/pydata-book 还有一定要说明的: 我使用的是Python ...
- asp.net mvc json数据缓存
一些虚拟主机资源给的少, 如果直接用框架缓存, 估计内存就爆了吧, 如果不用缓存, 虚拟主机自带的数据库也是限制资源的, 访问多了就直接给timeout了, 用json文件形式缓存查询出来的数据, 虽 ...
- 强化学习 CartPole实验的一些启发 有没有可能设计一个新的实验呢?(杆子可以向360度方向倾倒,可行吗?)
最近在看强化学习方面的东西,突然想到了这么一个事情,那就是经典的CartPole游戏我们改变一下,或者说升级一下,那么使用强化学习是否能得到不错的效果呢? 原始游戏如图: 一点个人的想法: ===== ...
- socket can demo
http://www.cnblogs.com/zengjfgit/p/5327689.html
- 【HAOI2016】食物链
HA真是弱…… 原题: 1.食物链[问题描述]如图所示为某生态系统的食物网示意图,据图回答第1小题. 1.数一数,在这个食物网中有几条食物链( )现在给你n个物种和m条能量流动关系,求其中的食物链条数 ...
- MySQL--自增列持久化问题
====================================================================== 自增列持久化问题 5.5/5.6/5.7三个版本中,MyS ...
- servlet / jsp(一)
2016-03-25 11:34:14 一.实现一个简单的servlet程序 Servlet是在服务器端运行的小程序,这是一个很广泛的概念,并没有说是在web服务器端运行的小程序,除了在web服务器上 ...
- 常见MQ流行度比较
MQ的流行度跟它的特性和应用场景密切相关,站在当下来看,kafka最火,rabbitmq用的也很多,ActiveMQ作为经典mq选择用它入门的也不少.
- 日志挖掘(logminer)
转. 如何使用logminer分析Oracle 联机日志 笔者在工作中经常遇到这样的情况:为了追踪数据的变化,需要知道某个表或者表中的某行数据是什么时候被修改的,以及修改前的内容. ...
- webpack 的插件 DllPlugin 和 DllReferencePlugin
在项目中,引入了比较多的第三方库,导致项目大,而每次修改,都不会去修改到这些库,构建却都要再打包这些库,浪费了不少时间.所以,把这些不常变动的第三方库都提取出来,下次 build 的时候不再构建这些库 ...