三级菜单实现

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('无此项')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值