# -*- coding = utf-8 -*-
# @time:2020/7/23 14:47
# Author:guoss
################################################
# Task Name: 三级菜单
# Description:打印省、市、县三级菜单
# 可随时返回上一级
# 可随时退出程序
#----------------------------------------------
################################################
zone = {
'山东' : {
'青岛' : ['四方','黄岛','崂山','李沧','城阳'],
'济南' : ['历城','槐荫','高新','长青','章丘'],
'烟台' : ['龙口','莱山','牟平','蓬莱','招远']
},
'江苏' : {
'苏州' : ['沧浪','相城','平江','吴中','昆山'],
'南京' : ['白下','秦淮','浦口','栖霞','江宁'],
'无锡' : ['崇安','南长','北塘','锡山','江阴']
},
'浙江' : {
'杭州' : ['西湖','江干','下城','上城','滨江'],
'宁波' : ['海曙','江东','江北','镇海','余姚'],
'温州' : ['鹿城','龙湾','乐清','瑞安','永嘉']
},
'安徽' : {
'合肥' : ['蜀山','庐阳','包河','经开','新站'],
'芜湖' : ['镜湖','鸠江','无为','三山','南陵'],
'蚌埠' : ['蚌山','龙子湖','淮上','怀远','固镇']
},
'广东' : {
'深圳' : ['罗湖','福田','南山','宝安','布吉'],
'广州' : ['天河','珠海','越秀','白云','黄埔'],
'东莞' : ['莞城','长安','虎门','万江','大朗']
}
}
#以上字典分为三级分别是“省”、“市”、“县”
# #1.打印一级菜单“省
# print(zone.keys()) #打印结果:dict_keys(['山东', '江苏', '浙江', '安徽', '广东'])
# #将上面结果转换为list,方便进行遍历操作
# province = list(zone.keys())
# print(province)
#
# #2.根据一级菜单打印二级菜单
# for prov in zone.keys():
# for city in zone.values():
# print(f'{prov}:{city}')
provinces = list(zone.keys())
print(' ************\n游戏说明:查询指定省份的市和县\n操作说明:输入q退出程序,输入p返回上一次\n ************')
while True:
print("可供查询省份:", end=' ')
for province in provinces:
print(province, end=' ')
chose_province = input("\n请输入您要查询的省份:")
if chose_province in provinces:
for province_no in range(len(provinces)):
if chose_province == provinces[province_no]:
#添加end = ' ' 目的是为了输出不换行,以空格隔开
print(f"{chose_province}可供查询的城市有:",end=' ')
citys = zone[chose_province].keys()
for city in citys:
print(city,end=' ')
while True:
chose_city = input("\n请输入您要查询的城市:")
if chose_city == 'p':
continue
elif chose_city == 'q':
#无论exit函数出现在程序中的何处,只要程序在执行过程中调用到exit()函数,程序立即终止运行。。
exit()
elif chose_city in citys:
print(f"{chose_city}下县城有:",end=' ')
counts = zone[chose_province][chose_city]
for city_no in range(len(counts)):
print(counts[city_no],end=' ')
break
else:
print(f'输入错误,请输入{chose_province}下的城市')
continue
elif chose_province == 'p':
continue
elif chose_province == 'q':
break
else:
print("输入信息错误,请重新输入")
continue
chose = input("\n一次查询完成,是否继续下一次[y/n]:")
if chose == 'y'or chose == 'p':
continue
elif chose == 'n' or chose == 'q' :
print('查询结束')
break
else:
print('输入信息错误,请重新输入')