三級菜單
· 現有省、市、縣3級結構,要求程序啓動後,允許用戶可依次選擇進入各子菜單
· 可在任意—級菜單返回上—級
· 可以在任意—級菜單退出程序
環境:Pycharm,Python3.7
#_*_coding:utf-8_*_
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'網易':{},
'google':{}
},
'中關村':{
'愛奇藝':{},
'汽車之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龍觀':{},
},
'朝陽':{},
'東城':{},
},
'上海':{
'閔行':{
"人民廣場":{
'炸雞店':{}
}
},
'閘北':{
'火車戰':{
'攜程':{}
}
},
'浦東':{},
},
'山東':{},
}
print("q for returning to the previous unit and e for exiting")
while True:
for i in menu.keys():
print(i)
choose1=input("which choice do u want to select:")
flag=1
#設置標誌以便於返回各個節點,不知道有沒有類似C語言goto的東西
while flag:
if choose1 in menu.keys():
if len(menu[choose1])!=0:
#這個地方有點坑,有些鍵裏面的值是空的,要做一個判斷先
for i in menu[choose1].keys():
print(i)
flag=0
else:
flag=0
elif choose1 == 'q':
flag=0
continue
elif choose1 == 'e':
exit()
else:
print("erro\n")
flag=0
continue
flag2=1
#同flag1
choose2=input("which choice do u want to select:")
while flag2:
if choose2 in menu[choose1].keys():
if len(menu[choose1][choose2])!=0:
for i in menu[choose1][choose2].keys():
print(i)
flag2=0
else:
flag2=0
elif choose2 == 'q':
flag2=0
continue
elif choose2 == 'e':
exit()
else:
print("erro\n")
flag2=0
flag=1
continue
flag3=1
#同flag1
choose3=input("which choice do u want to select:")
while flag3:
if choose3 in menu[choose1][choose2].keys():
if len(menu[choose1][choose2][choose3])!=0:
for i in menu[choose1][choose2][choose3].keys():
print(i)
flag3=0
else:
flag3=0
elif choose3 == 'q':
flag3=0
flag=1
continue
elif choose3 == 'e':
exit()
else:
print("erro")
flag3=0
flag2=1
break
choose4=input("Try again? (y/n)" )
if choose4 == 'y':
continue
else:
exit()