需求:
可依次选择进入各子菜单
可从任意一层往回退到上一层
可从任意一层退出程序
所需新知识点:列表、字典
数据结构:
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车站':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}
由于是循环查询 ,所以写个while
curreen = menustorage = []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('已经是最顶层了')