city_menu={
'上海':{
'浦东':{
'陆家嘴':{
'CICC':{},
'高盛':{},
'摩根':{},
},
'外滩':{},
},
'闵行':{},
'静安':{},
},
'山东':{
'济南':{},
'德州':{
'乐陵':{
'上当镇':{},
'城区镇':{},
},
'平原':{},
},
'青岛':{},
},
'北京': {
'朝阳': {
'国贸':{
'cicc':{},
'HP':{},
'CCTV':{},
},
'望京':{
'陌陌':{},
'奔驰':{},
'360':{},
},
'三里屯':{
'优衣库':{},
'三里屯SOHO':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'阿泰包子':{},
},
'天通苑':{
'链家':{},
'我爱我家':{},
},
},
'海淀':{
'五道口':{
'谷歌':{},
'网易':{},
'SOHU':{},
'sogo':{},
'快手':{},
},
'中关村':{
'youkou':{},
'爱奇艺':{},
'汽车之家':{},
'新东方':{},
'QQ':{},
},
},
}
}
current_layer = city_menu#实现动态循环
parent_layers = []#保存所有父级,最后一个元素永远都是父级
while True:
for key in current_layer:
print(key)
choice = input('>>>:').strip()
if len(choice) == 0:continue
if choice in current_layer:
parent_layers.append(current_layer)#在进入下一层之前,把当前层(也就是下一层的父层)追加到列表中,
#下一次Ioop,当用户选择b的时候就可以直接取列表最后一个值出来. append为列表添加元素
current_layer = current_layer[choice]#改成子层
elif choice == 'b':
if parent_layers:#非空为True
current_layer = parent_layers.pop()#取出列表的最后一个值,因为他就是当前层的父级.
# 把子层改成父层#pop删除并返回最后一个值
elif choice == 'e':
break
else:
print('无此项')
三级菜单实现
最新推荐文章于 2021-02-20 23:29:26 发布