实现一个三级菜单,可回退,可随时退出,可返回
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}
current = menu
gyf=[menu]
while True:
for i in current.keys():
print(i)
a = input('>').strip()
if a == 'b':
current=gyf[-1] # current最后一位都是保留上一级菜单
if len(gyf) > 1: # 防止在一级菜单退出多次时报错
gyf.pop() # 拿到上级菜单后要把最后一位删除,此时最后一位就是上上级菜单
elif a in ('q','quit'):
break
elif a not in current:
continue
else:
gyf.append(current) #每次把当前的菜单都放到最后一位
current=current[a] #把下级菜单放到current,这样打印出来就是下级菜单