写程序:多级菜单
需求:
①现有省、市、县3级结构,要求程序启动后,允许用户可依次选择进入各子菜单
②可在任意一级菜单返回一级
③可以在任意一级菜单退出程序
所需知识点:列表、字典
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:young
menu_list = {
'四川省':{
'成都市':{'锦江区':['锦江幼儿园','锦江万达','春熙路'],
'成华区':['成华幼儿园','成华万达','烂尾楼']
}
},
'贵州省':{
'贵阳市':{'云岩区':['云岩幼儿园','云岩玉溪场','云岩鸭子'],
'南明区':['南明幼儿园','南明酒厂','南明广电'],
'乌当区':['乌当幼儿园','乌当烟厂','乌当电信'],
}
}
}
now_choice=menu_list
history=[]
while True:
for i in now_choice:
print(i)
choose=input("Please choose a part:")
if not choose:continue #如果没有输入,就继续让用户输入
if choose in now_choice:
history.append(now_choice) #这是存历史选择的列表,注意里存的是字典,可以理解为路径
print(history)
now_choice=now_choice[choose] #递归,不断更新变量
elif choose == 'q':
if len(history) != 0:
# print(history)
now_choice=history.pop()
print(now_choice)
# print(type(now_choice))
else:
print("This is the top!")
elif choose == 'e':
exit()
else:
print("erro!")