python三级菜单

这是一个基于python写的三级菜单。

流程:首先让用户知道省市县,通过输入市名直接查看到市名,再输入市名直接查看到各县以及公司,并在进入省市县前保存它们的父级,通过按b键可返回上一层。

以下是代码


menu = {
'北京':{
'朝阳':{
'国贸':{
'CICC':{},
'HP':{},
'渣打银行':{},
'CCTV':{},
},
'望京':{
'陌陌':{},
'奔驰':{},
'360':{},
},
'三里屯':{
'优衣库':{},
'apple':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'阿泰包子':{},
},
'天通苑':{
'链家':{},
'我爱我家':{},
},
'回龙观':{},
},
'海淀':{
'五道口':{
'谷歌':{},
'网易':{},
'Sohu':{},
'Sogo':{},
'快手':{},
},
'中关村':{
'youku':{},
'Iqiyi':{},
'汽车之家':{},
'新东方':{},
'QQ':{},
},
},
},
'上海': {
'浦东':{
'陆家嘴':{
'CICC':{},
'高盛':{},
'摩根':{},
},
'外滩':{},

},
'闵行':{},
'静安':{},
},
'山东': {
'济南':{},
'德州':{
'乐磷':{
'丁务镇':{},
'城区':{},
},
'平原':{},
},
'青岛':{},
},
}

current_layer = 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) #在进入下已层之前,把当前层(也就是下一层父级)追加到列表中,下一次
#loop,当用户选择b的时候,就可以取出列表的最后一个值出来
current_layer = current_layer[choice] #改成了子层
elif choice == 'b':
if parent_layers: #判断为空
current_layer = parent_layers.pop() #取出列表的最后一个值,因为他就是当前层的父级

else:
print("无此项。")

最后,十分感谢老男孩的alex老师,本人是通过视频学习的,因为还是个苦逼的打工仔,等实现自己想做的工作后,一定请各位大佬吃饭。













原文地址:https://www.cnblogs.com/1024ndd/p/11046050.html