城市信息:CityList.py
info = { '北京':{ '海淀区': ['中关村','五道口','安宁庄','北京大学','车道沟'], '东城区': ['安定门','北新桥','朝阳门','东直门','王府井'], '西城区': ['百万庄','车公庄','德胜门','地安门','阜成门'], '丰台区': ['大红门','马家宝','右安门','世界公园','六里桥'], '朝阳区': ['安慧桥','奥运村','北沙滩','广渠门','八里庄'], }, '上海': { '浦东新区': ['八佰伴','张江','唐镇','陆家嘴','外滩'], '徐汇区' : ['上海植物园','万体馆','徐家汇','漕河泾','田林','上海交大'], '长宁区' : ['北新泾','中山公园','动物园','西郊公园','周家桥','程家桥'], '普陀区' : ['建德公园','李子园','武宁路','万里城','长风公园',], '杨浦区' : ['东外滩','黄兴','鞍山','五角场','新江湾城'], '闵行区' : ['七宝','辛庄','虹桥','静安新城','马桥'], '嘉定区' : ['安亭','曹王','丰庄','华庭','嘉定城区'], '静安区' : ['南京西路','上海电视台','玉佛寺','曹家渡','静安寺'], '金山区' : ['亭林','枫泾','金山新城','金山工业区','廊下'], }, '广州' :{ '天河': ['东圃','岗顶','黄村','天河公园','五山',], '海珠': ['宝岗','洪德','东晓','南州','沙园',], '越秀': ['东湖','小北','东川','广卫','中山路'], '白云': ['东平','广花','永泰','新市','伍仙桥'], '荔湾': ['宝华路','坑口','芳村','窖口','菊树'], '佛山': ['高明','南海','清溪','禅城','三水'], '黄埔': ['大沙地','皇浦新村','庙头','文冲','渔珠'], '花都': ['花东','狮岭','山前大道','旧区','新区'], '东莞': ['东城','莞城','虎门','南城','长安'], '南沙': ['大岗','黄阁','锦州','万顷沙','东升'], }, '深圳':{ '罗湖': ['布心','蔡屋围','翠竹','草铺','东门','东湖'], '福田': ['八卦岭','笔架山','保税区','赤尾','车公庙','荔枝公园'], '南山': ['白石洲','大冲','桃源村','西丽','中心区','后海',], '盐田': ['大梅沙','沙头角','小梅沙','盐田','盐田周边'], '宝安': ['松岗','宝安','福永','翻身路','石岩','沙井'], '龙岗区': ['坂田','大运新城','横岗','龙岗','平湖','坪地'], '布吉': ['布吉关','丹竹头','康桥','大芬村','丽湖','木棉湾'], }, }
City_select.py
import CityList
SelectSuccess=True
City_List=list(CityList.info.keys()) #获取省份列表
while SelectSuccess:
Print_City = ''
for i,val in enumerate(City_List): #通过enumerate将省份按照阿序号排列,通过for循环取值
i = str(i)
Print_City += i + '\t' + val + ' | '
print ('\033[36;1m欢迎登陆查询系统,请根据提示进行查询\033[0m')
print ('\033[36;1m%s\033[0m'%(Print_City))
City=input('\033[36;1m请输入序列号选择你要查询的城市,Q退出:\033[0m').strip()
if City == 'Q':
SelectSuccess=False
break
if City.isdigit() is False: #判断用户输入的是不是数字 不是继续输入
print ('\033[1;31;40m请输入正确的指令\033[0m')
continue
if len(City) != 0 and int(City) < len(City_List): #判断用户输入是不是为空(可取消) and 用户输入的数字是否超过省份列表的索引值
Print_Area = ''
Area_List = list(CityList.info[City_List[int(City)]]) #将用户选择的省份取出其区域的keys转换为列表
for i,val in enumerate(Area_List): #取出用户输入的省份的keys添加序列号 for循环取出
i = str(i)
Print_Area += i + '\t' + val + ' | '
while SelectSuccess:
User_Input=input ('''\033[36;1m
===============================================================================================
欢迎来到 %s:
%s区域分布如下:
%s
===============================================================================================
请输入您选择的城市编号,按Q退出,B返回上一级:\033[0m
'''%(City_List[int(City)],City_List[int(City)],Print_Area)).strip()
if User_Input == 'B':
break
if User_Input == 'Q':
SelectSuccess=False
break
if User_Input.isdigit() is False:
print ('\033[1;31;40m请输入正确的指令\033[0m')
continue
if len(User_Input) != 0 and int(User_Input) < len(Area_List): #判断用户输入是不是为空(可取消) and 用户输入的数字是否超过区域列表的索引值
if int(User_Input) <= len(Area_List):
print ('\033[36;1m')
print (CityList.info[City_List[int(City)]][Area_List[int(User_Input)]]) #打印用户选择的区域的信息
print ('\033[0m')
Exit=input('\033[36;1m查询结束,Q退出,任意键继续查询\033[0m')
if Exit == 'Q':
SelectSuccess=False
break
else:
print ('\033[1;31;40m请输入正确的序列号\033[')
else:
print ('\033[1;31;40m请输入正确的序列号\033[0m')
else:
print ('\033[1;31;40m请输入正确的序列号\033[0m')
if SelectSuccess==False:
print ('\033[36;1m谢谢使用,再见!\033[0m')