#__author:"Ryzreal"
#date :2018/6/21
#要求:可以一层层进入到所有层,可以返回上一层,可以在任意层退出主菜单
menu = {
"北京":{
"朝阳":{
"国贸":{
"CICC":{},
"HP":{},
"CCTV":{},
},
"望京":{
"陌陌":{},
"奔驰":{},
},
"三里屯":{
"优衣库":{},
"apple":{}
},
},
"昌平":{
"沙河":{
"老男孩":{}
},
"通天苑":{
"链家":{},
"我爱我家":{}
}
},
"海淀":{
"五道口":{
"谷歌":{},
"网易":{},
},
"中关村":{
"youku":{},
"汽车之家":{},
}
},
},
"上海":{
"浦东":{
"陆家嘴":{
"高盛":{},
"摩根":{},
},
"外滩":{},
},
"闵行":{},
},
"山东":{
"济南":{},
"青岛":{},
"德州":{
"乐陵":{
"城区":{},
},
"平原":{},
},
},
}
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.append(current_layer)#把当前字典陆续追加到列表中,最后一项为父级
current_layer = current_layer[choice]#进入用户选择的子集
elif choice == "d":
if parent_layer:# 为[]时是false,跳出本次,为rueT时执行下一条
current_layer = parent_layer.pop()
else :
print("无数据")