#!/usr/bin/env python 

#_*_ coding:utf-8 _*_
#Author:moshell
#datetime:2018/6/11 14:03

#三级菜单,用户通过输入实现每一级查询.
import sys


Data={
'江苏省':{
'连云港市':['东海县','墟沟区','连云区','海州区'],
'苏州市':['昆山市','太仓市','张家港市','吴中区'],
'无锡市':['江阴市','宜兴市','滨湖区']},
'上海市':{
'黄浦区':['上海老街','金陵路商业街','人民广场'],
'徐汇区':['徐家汇街道','天平路街道'],
'浦东新区':['高桥镇','陆家嘴街道','祝桥镇']
},
'香港':{
'香港岛':['中西区','湾仔区','东区','西区'],
'九龙半岛':['油尖旺区','深水埗区','九龙城区','黄大仙区','观塘区'],
'新界':['北区','大埔区','沙田区','西贡区','荃湾区','屯门区','元朗区','葵青区','离岛区']},
'西藏':{
'拉萨市':['城关区','尼木县','当雄县','曲水县'],
'日喀则市':['江孜县','定日县','亚东县','康马县'],
'阿里地区':['普兰县','扎达县','日土县','改则县']}
}
Province_list=list(Data.keys()) #把字典中键值用列表存储
Flag=True

while Flag:
print('\033[32;1m编号---省份\033[0m'.center(50,'*'))
for index,p in enumerate(Province_list):
print('\033[34;1m%s %s\033[0m'%(index,p))
Choice=input('\033[33;1m请输入需要查询省的编号:\033[0m').strip()
if Choice.isdigit():
Choice1=int(Choice)
if Choice1>=0 and Choice1<len(Province_list):
Province_name=Province_list[Choice1]
City_list=list(Data[Province_name].keys())
while True:
print('\033[32;1m编号---市\033[0m'.center(50,'*'))
for index,c in enumerate(City_list):
print('\033[34;1m%s %s\033[0m'%(index,c))
Choice2=input('\033[33;1m请输入需要查询市的编号:\033[0m').strip()
if Choice2.isdigit():
Choice3=int(Choice2)
if Choice3>=0 and Choice3<=len(City_list):
Country_name=City_list[Choice3]
Country_list=Data[Province_name][Country_name]
print('\033[32;1m编号---区/县\033[0m'.center(50, '*'))
for index,c in enumerate(Country_list):
print(index,c)
Choice4=input('退出程序(Q/q) 返回上一级菜单(B/b):').strip()
if Choice4=='q' or Choice4=='Q':
print('退出程序')
sys.exit()
elif Choice4=='b' or Choice4=='B':
print('返回上一级菜单')
continue
else:
print('您输入的编号不在列表中,请重新输入')
continue

elif Choice2=='q' or Choice2=='Q':
print('正在退出程序')
sys.exit()
elif Choice2=='b' or Choice2=='B':
print('返回上一级菜单')
break
else:
print('您输入的编号非数字,请重新输入.')
continue
else:
print('您输入的编号不在列表中,请重新输入.')
continue
elif Choice=='q' or Choice=='Q':
print('正在退出程序')
Flag=False
else:
print('您输入的编号非数字,请重新输入.')
continue