menu = {
'北京': {
'海淀': {
'五道口': {
'soho': {},
'网易': {},
'google': {}
},
'中关村': {
'爱奇艺': {},
'汽车之家': {},
'youku': {},
},
'上地': {
'百度': {},
},
},
'昌平': {
'沙河': {
'老男孩': {},
'北航': {},
},
'天通苑': {},
'回龙观': {},
},
'朝阳': {},
'东城': {},
},
'上海': {
'闵行': {
"人民广场": {
'炸鸡店': {}
}
},
'闸北': {
'火车站': {
'携程': {}
}
},
'浦东': {},
},
'山东': {},
}
current_menu = menu
previous_menu = []
while True:
for m in current_menu:
print(m)
choice = input("请输入你想查询的城市,返回上级请输1,退出请输q")
if choice in current_menu:
previous_menu.append(current_menu)
current_menu = current_menu[choice]
elif choice == "1":
if len(previous_menu) != 0:
current_menu = previous_menu.pop()
else:
print("已是最顶层,无法再返回,请输入您要查询的城市,退出请输q")
elif choice == "q":
print("您已退出,谢谢使用!")
break
else:
print("您输入的城市不正确,请重新输入,返回上级请输1,退出请输q")
# 思路:后期要常用两个变量:当前层菜单和上级菜单,所以给这两个变量做个定义,以便后面调用。
# 1、打印顶级菜单,提示用户输入 2、用户输入后进行判断:
# (1)用户输入名字在当前菜单里,则进入下一级
# (2)用户输入名字为1且上级菜单不为空时,返回上一级菜单
# (3)用户输入名字为q,退出程序