Python 模拟三级菜单可依次选择进入各级子菜单
menu={
'东北':{
'黑龙江':{'哈尔滨':['香坊','道里','道外','南岗'],
'齐齐哈尔':['龙沙','建华','铁峰','龙江']},
'吉林省':{'长春':['南关区','宽城','朝阳','双阳'],
'吉林':['龙潭','船营','昌邑','丰满']}
},
'华北':{
'河北省':{'廊坊':['廊坊1','廊坊2','廊坊3'],
'保定':['保定1','保定2','保定3']},
'内蒙古':{'呼和浩特':['浩特1','浩特2','浩特3'],
'包头':['包头1','包头2','包头3']}
}
}
while True: # 无限循环,直到选择退出才结束程序
for i,v in enumerate(menu.keys()): # 1. 循环菜单读出一级选项信息
print(i,v)
menu_1=input('请输入一级菜单号,按q退出:').strip() # 键入数字选择下一级选项
if menu_1 == 'q':
break
if menu_1.isdigit(): # 如果参数为数字且为规定的选项则执行以下
menu_1=int(menu_1)
if menu_1 <= len(menu):
key_1 = list(menu.keys())[menu_1]
while True: # 无限循环,直到选择退出才结束循环
for i1,v1 in enumerate(menu[key_1]): # 2. 循环菜单读出二级选项信息
print(i1,v1)
menu_2 = input('请输入二级菜单,按b返回:').strip()
if menu_2 == 'b':
break
if menu_2.isdigit(): # 如果参数为数字且为规定的选项则执行以下
menu_2=int(menu_2)
if menu_2 <= len(menu[key_1]):
key_2 = list(menu[key_1].keys())[menu_2]
while True:
for i2,v2 in enumerate(menu[key_1][key_2]): # 3.循环菜单读三级信息
print(i2,v2)
menu_3 = input('请输入三级菜单,按b返回:').strip()
if menu_3 == 'b':
break
if menu_3.isdigit(): # 如果参数为数字且为规定的选项则执行以下
menu_3 = int(menu_3)
if menu_3 <= len(menu[key_1][key_2]):
key_3 = list(menu[key_1][key_2].keys())[menu_3]
while True: # 循环显示三级菜单以下信息
for i3,v3 in enumerate(menu[key_1][key_2][key_3]):
print(i3,v3)
menu_4 = input('按b返回:')
if menu_4 == 'b':
break
注: 本文博引 http://51enjoy.blog.51cto.com/addblog.php 在python3.5中编写的代码,
如有考虑不到之处还请多多指教,共同学习。