menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}
current_layer = menu # 存放当前节点
pre_layer=[] #存放前面的节点数据
while True:
for i in current_layer:
print(i)
user_opt = input(">>").strip()
if user_opt == None:
continue
elif user_opt == "q":
exit()
elif user_opt == "b":
if current_layer == menu:#若当前节点已是最顶层节点,则不回退
continue
else:
current_layer = pre_layer.pop()#回退一级,上一级节点变成当前节点
elif user_opt in current_layer:
pre_layer.append(current_layer)#前进一级,当前节点变为上一级节点
current_layer = current_layer[user_opt]#下一级节点变为当前节点