#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

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐