需求:
可依次选择进入各子菜单
可从任意一层往回退到上一层
可从任意一层退出程序
所需新知识点:列表、字典
数据结构:
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车站':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}
由于是循环查询 ,所以写个while
curreen = menu
storage = []
while True:
for k in curreen: #从menu菜单里面拿出数据
print(k)#打印出最外面的一层data 让用户选择
choose = input('>>>:').strip()#接受的用户输出数据赋值给变量choose
if choose == 'q':#用户输入q退出程序
exit()
if not choose:continue #判断用户如果没有正确输出 就跳出当前这行什么也不做
if choose in curreen:#判断用户输的在菜单里面没有
storage.append(choose)#进入每一层的记录存放到列表里面
print(storage)
curreen = curreen[choose]#进入下一层 menu[][]
elif choose == 'b':
if len(storage) != 0: #列表里面的记录不为空
curreen = storage.pop()#弹出最后一次的记录并删除
else:
print('已经是最顶层了')