# __author__:Nzkalhbxx
# __date__:2017/10/15
menu = {
'河北': {
'石家庄': {
'平山县': {},
'新乐市': {},
'辛集市': {}
},
'唐山': {
'路南区': {},
'开平区': {},
'丰南区': {}
},
'邯郸': {
'丛台区': {},
'复兴区': {},
'大名县': {}
}
},
'湖北': {
'武汉': {
'江岸区': {},
'江汉区': {},
'武昌区': {}
},
'黄石': {
'下陆区': {},
'铁山区': {},
'黄石港区': {}
},
'咸宁': {
'嘉鱼县': {},
'通城县': {},
'崇阳县': {}
}
},
'广东': {
'广州': {
'荔湾区': {},
'天河区': {},
'萝岗区': {}
},
'韶关': {
'武江区': {},
'曲江区': {},
'浈江区': {}
},
'汕尾': {
'陆河县': {},
'陆丰市': {},
'海丰县': {}
}
}
}
# loop_print_flag = True # loop_print_flag用于标志是否循环输出当前等级菜单内的所有选项
# notBack_flag = True # notBack_flag用于标志是否不返回上一层
# while loop_print_flag and notBack_flag:
# for ele in menu:
# print(ele)
# province = input("选择地点>>>:").strip()
# if province == "back":
# notBack_flag = False # 当输入为back时, 将notBack_flag设置为False
# elif province in menu:
# while loop_print_flag and notBack_flag:
# for ele in menu[province]:
# print(ele)
# city = input("选择地点>>>:").strip()
# if city == "back":
# notBack_flag = False
# elif city in menu[province]:
# while loop_print_flag and notBack_flag:
# for ele in menu[province][city]:
# print(ele)
# county = input("选择地点>>>:").strip()
# if county == "back":
# notBack_flag = False
# elif county in menu[province][city]:
# print(''.join(["-->", county]))
# lastChoice = input("是否选择完成:退出(quit)/回退(back):")
# if lastChoice == "quit":
# loop_print_flag = False
# notBack_flag = False
# elif lastChoice == "back":
# notBack_flag = False
# notBack_flag = True
# else:
# loop_print_flag = True
# notBack_flag = True
# else:
# loop_print_flag = True
# print("-------->退出选择<--------")
# 精简版
# loop_print_flag用于标志是否循环输出当前等级子菜单内的所有选项
loop_print_flag = True
# current_level用于保存当前循环所在菜单
current_level = menu
# 用于返回时使用, 每进入下一层时便保存上一级的目录菜单
parent_level = []
# 判断是否输入有误
errorInput = True
while loop_print_flag or errorInput:
for ele in current_level:
print(ele)
choice = input("place is not exist, choose quit or back:>>>:").strip()
if choice in current_level:
parent_level.append(current_level)
current_level = current_level[choice]
elif choice == "back":
if parent_level.__len__() > 0:
current_level = parent_level.pop()
elif choice == "quit":
loop_print_flag = False
errorInput = False
print("-------->退出选择<--------")
运行结果
网友评论