要求:
打印省市县三级菜单
可返回上级
可随时推出
#__author: greg
#date: 2017/9/2 8:37
menu={
'北京':{
'朝阳':{
'朝阳门':{
'银河SOHO':{},
'外交部':{}
},
'国贸':{
'新东方':{},
'饭店':{}
}
},
'东城':{
'景山':{
'国家文化局':{}
},
'王府井':{
'故宫':{}
}
},
'海淀':{},
'丰台':{}
}
}
current_layer=menu#实现动态循环
parent_layer=[] #保存所有父级,最后一个元素永远是父亲级
while True:
for key in current_layer:
print(key)
choice=input(">>>:").strip()
if len(choice)==0:continue
if choice in current_layer:
# parent_layer=current_layer
parent_layer.append(current_layer)#把当前级加入父亲级称为列表最后一个元素
#下一次循环,当输入return,就可以直接取列表最后一个值
current_layer=current_layer[choice]
elif choice=="return":
# current_layer=parent_layer
current_layer=parent_layer.pop()#取出列表最后一个值,因为他就是当前层的父亲级
elif choice=="quit":
break
else:
print("no item")