python输入城市找省份_利用字典模拟省市区(县)的查询
#python3.7p={#建立字典p‘陕西省‘:{‘‘‘西安市‘:{‘新城区‘,‘莲湖区‘,‘灞桥区‘},‘咸阳市‘:{‘秦都区‘,‘杨凌区‘,‘渭城区‘},‘汉中市‘:{‘汉台区‘,‘洋县‘,‘勉县‘}},‘河北省‘:{‘开封市‘:{‘通许县‘,‘龙亭区‘,‘鼓楼区‘},‘安阳市‘:{‘林州市‘,‘汤阴县‘,‘内黄县...
#python3.7
p= { #建立字典p
‘陕西省‘:
{‘‘
‘西安市‘:
{‘新城区‘,‘莲湖区‘,‘灞桥区‘},
‘咸阳市‘:
{‘秦都区‘,‘杨凌区‘,‘渭城区‘},
‘汉中市‘:
{‘汉台区‘,‘洋县‘,‘勉县‘}
},
‘河北省‘:
{
‘开封市‘:
{‘通许县‘,‘龙亭区‘,‘鼓楼区‘},
‘安阳市‘:
{‘林州市‘,‘汤阴县‘,‘内黄县‘},
‘焦作市‘:
{‘解放区‘,‘温县‘,‘中站区‘}
},
‘山东省‘:
{‘青岛市‘:
{‘市南区‘,‘市北区‘,‘四方区‘},
‘烟台市‘:
{‘福山区‘,‘牟平去‘,‘莱山区‘},
‘济南市‘:
{‘天桥区‘,‘市中区‘,‘历城区‘}
},
}
p_list=list(p.keys()) #将字典p的keys转换为列表赋给p_list
Flag=True
while Flag:
for i in p_list: #列表p_list元素下标+1为序号,并打印省份i
print(p_list.index(i)+1,i)
p_id=input("请输入所查找省份的编号(输入E退出):\n")
if p_id.isdigit(): #判断输入的p_id是否由数字构成
p_id=int(p_id) #若p_id只由数字构成,则输出列表p_list中p下标为(p_id-1)的元素(所求省份)
if p_id >0 and p_id<= len(p_list):
p_name=p_list[p_id-1] #将所查省份赋给p_name
city_list=list(p[p_name])#将字典中key为p_name的嵌套字典的keys 转换为列表 并赋给city_list
while Flag:
for i in city_list: #同理求出所查找城市的行政区域
print(city_list.index(i)+1,i)
c_id=input("请输入所查找城市的编号(输入B返回上一层\n输入E退出):\n")
if c_id.isdigit():
c_id=int(c_id)
if c_id >0 and c_id<= len(city_list):
c_name=city_list[c_id-1]
town_list=list(p[p_name][c_name])
while Flag:
for i in town_list:
print(town_list.index(i)+1,i)
print(‘请选择你的操作:‘)
m =input("输入B返回上一层\n输入E退出\n")
if m==‘B‘:#输入m 若为B打断当前循环 返回上层循环
break
elif m==‘E‘:
Flag=False
break
else:
print(‘输入无效,请重新输入\n‘)
elif c_id==‘B‘:
break
elif c_id==‘E‘:
Flag=False
else:
print(‘输入无效,请重新输入\n‘)
elif p_id==‘E‘: #若p_id不仅仅有数字构成,判断是否只为E,若为E打断当前循环(结束进程)
break
else:
print(‘输入无效,请重新输入\n‘)
运行结果
1 陕西省
2 河北省
3 山东省
请输入所查找省份的编号(输入E退出):
2
1 开封市
2 安阳市
3 焦作市
请输入所查找城市的编号(输入B返回上一层
输入E退出):
3
1 中站区
2 温县
3 解放区
请选择你的操作:
输入B返回上一层
输入E退出
B
1 开封市
2 安阳市
3 焦作市
请输入所查找城市的编号(输入B返回上一层
输入E退出):
E
Process finished with exit code 0
更多推荐
所有评论(0)