三级菜单

2017-09-15  16:55:24

本博客内多为原创,如需转载,请注明出处,谢谢。


功能介绍:

    程序可以实现三级菜单功能,可依次选择进入各子菜单,用户可以返回到上一层菜单,也可以随时退出。

  1 # _*_ coding:utf-8 _*_
  2 # _auther_:Mr.chan
  3 
  4 import sys
  5 
  6 # 打印一级菜单
  7 def menu():
  8     while True:
  9         print("一级菜单".center(30,'-'))
 10         for index,key in enumerate(areas.keys(),1):   # 循环并打印省级
 11             print(index,key)
 12         choice1 = input("[q=quit]请输入:")
 13         if choice1 in areas.keys():
 14             menu2(choice1)
 15             break
 16         elif choice1 == "q":
 17             sys.exit("退出系统")
 18         elif choice1 == "b":
 19             print("这里是一级菜单,不能返回")
 20         else:
 21             print("输入有误,请重新输入
")
 22             continue
 23 
 24 # 打印二级菜单
 25 def menu2(choice1):
 26     while True:
 27         print("二级菜单:".center(30,'-'))
 28         for index,key in enumerate(areas[choice1].keys(),1):  # 循环并打印地级市
 29             print(index,key)
 30         choice2 = input("[b=back q=quit]请输入:")
 31         if choice2 in areas[choice1].keys():
 32             menu3(choice1,choice2)
 33             break
 34         elif choice2 == "q":
 35             sys.exit("退出系统")
 36         elif choice2 == "b":
 37             menu()
 38         else:
 39             print("输入有误,请重新输入
")
 40             continue
 41 
 42 # 打印三级菜单
 43 def menu3(choice1,choice2):
 44     while True:
 45         print("三级菜单:".center(30,'-'))
 46         for index,key in enumerate(areas[choice1][choice2].keys(),1):  # 循环并打印县级市
 47             print(index,key)
 48         choice3 = input("[b=back q=quit]请输入:")
 49         if choice3 in areas[choice1][choice2].keys():
 50             for key in areas[choice1][choice2][choice3]:
 51                 print(key)
 52             choice4 = input('
没有啦,按回车键返回上一级,按q退出:')
 53             if choice4 == 'q':
 54                 sys.exit("退出系统")
 55             else:
 56                 pass
 57         elif choice3 == "q":
 58             sys.exit("退出系统")
 59         elif choice3 == "b":
 60             menu2(choice1)
 61         else:
 62             print("输入有误,请重新输入")
 63             continue
 64 
 65 areas = {
 66     '广西':{
 67         '梧州':{
 68             '岑溪':['豆腐酿','新圩米粉','茄子酿','白切鸡'],
 69             '藤县':['1','2','3'],
 70             '苍梧':['4','5','6']
 71             },
 72         '南宁':{
 73             '武鸣区':['大明山','伊岭岩','灵水','明秀园'],
 74             '宾阳县':['鱼生','宾阳酸辣粉']
 75             }
 76     },
 77     '广东': {
 78         '佛山': {
 79             '禅城': ['1','2'],
 80             '祖庙': ['1','2']
 81         },
 82         '广州':{
 83             '天河':['1','2'],
 84             '番禺':['1','2']
 85         },
 86         '深圳': {
 87             '福田区':['1','2'],
 88             '龙岗区':['1','2']
 89         }
 90     },
 91     '湖南': {
 92         '长沙市': {
 93             '长沙县': ['1', '2'],
 94             '宁乡县': ['1', '2']
 95         },
 96         '湘潭市': {
 97             '雨湖区': ['1', '2'],
 98             '湘潭县': ['1', '2']
 99         },
100         '娄底市': {
101             '娄星区': ['1', '2'],
102             '新化县': ['1', '2']
103         }
104     }
105 }
106 
107 #执行函数
108 menu()
原文地址:https://www.cnblogs.com/relax1949/p/7527288.html