python三级菜单
三级菜单:1.打印省、市、县三级菜单 2.可随时返回上一级 3.可随时退出程序
北京
山东
上海
>:北京
朝阳
昌平
海淀
>:昌平
沙河
天通苑
>:沙河
阿泰包子
b 任何一层输入b,可以返回上一层
q 退出程序
menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家':{}, 'youku':{}, }, '上地':{ '百度':{}, }, }, '昌平':{ '沙河':{ '北航':{}, }, '天通苑':{}, '回龙观':{}, }, '朝阳':{}, '东城':{}, }, '上海':{ '闵行':{ "人民广场":{ '炸鸡店':{} } }, '闸北':{ '火车战':{ '携程':{} } }, '浦东':{}, }, '山东':{}, } exit_flag=True #定义变量条件,改变条件程序结束 while exit_flag: #当exit_flag=True时输出menu[key],第一层菜单 for key in menu: print(key) choice=input(">:").strip() #定义变量输入choice if choice =='q': #当输入“q”退出整个程序 exit_flag=False continue if len(choice) == 0: #当输入变量为空时,结束本次循环,重新开始本层循环 continue if choice in menu: #判断输入变量choice是否在menu中 while exit_flag: net_layer = menu[choice] #给予menu[choice]定义本层菜单新变量net_layer for key2 in net_layer: #输出第二层菜单 print(key2) choice2=input(">>:").strip() #定义变量输入choice2 if choice2 == "b": #当输入变量choice2为“b”时,返回结束本层循环,返回上一层循环 break if choice2=="q": #当输入“q”退出整个程序 exit_flag=False continue if len(choice2)==0: #当输入变量为空时,结束本次循环,重新开始本层循环 continue if choice2 in net_layer: #判断输入变量choice2是否在net_layer中 while exit_flag: net_layer2 = net_layer[choice2] #给予net_layer[choice2]定义本层菜单新变量net_layer2 for key3 in net_layer2: #输出第三层菜单 print(key3) choice3=input(">>>:").strip() #定义变量输入choice3 if choice3=="b": #当输入变量choice2为“b”时,返回结束本层循环,返回上一层循环 break if choice=="q": #当输入“q”退出整个程序 exit_flag=False continue if len(choice3)==0: #当输入变量为空时,结束本次循环,重新开始本层循环 continue if choice3 in net_layer2: #判断输入变量choice3是否在net_layer2中 net_layer3=net_layer2[choice3] #给予net_layer2[choice3]定义本层菜单新变量net_layer3 for key4 in net_layer3: #输出第四层菜单 print(key4) choice4 = input(">>>>:").strip() #定义变量输入choice3,此处防止上层操作结束后再次循环 #此处只要不输入choice4则程序就不会无限循环 if choice4 == 'b': break if choice4 == 'q': exit_flag = True continue print("done!")
程序运行效果: