Day06 作业
要求
- 打印省、市、县三级菜单
- 可返回上一级
- 可随时退出程序
menu = {
'北京': {
'海淀': {
'五道口': {
'soho': {},
'网易': {},
'google': {}
},
'中关村': {
'爱奇艺': {},
'汽车之家': {},
'youku': {},
},
'上地': {
'百度': {},
},
},
'昌平': {
'沙河': {
'老男孩': {},
'北航': {},
},
'天通苑': {},
'回龙观': {},
},
'朝阳': {},
'东城': {},
},
'上海': {
'闵行': {
"人民广场": {
'炸鸡店': {}
}
},
'闸北': {
'火车战': {
'携程': {}
}
},
'浦东': {},
},
'山东': {},
}
continue_tag = True
#last_menu用于保存访问过的菜单
last_menu = []
while continue_tag:
for key in menu:
print(key)
next_level = input("输入列表中选项进入下一层菜单,输入“q”退出, 输入“b”返回上一层:
").strip()
if next_level == "q":
continue_tag = False
#用户选择返回上层菜单,如果last_menu中还记录有访问过的菜单,则取出最后访问的菜单
elif next_level == "b" and len(last_menu):
menu = last_menu.pop()
#用户选择下层菜单,如果有下层菜单,则准备进入下层菜单,并添加当前菜单到last_menu末尾
elif menu.get(next_level):
last_menu.append(menu)
menu = menu.get(next_level)
else:
print("无上层菜单或下层菜单")
continue
# todo 程序存在的问题last_menu中保存有重复的数据,如果要访问的菜单节点很多,会浪费内存