python3-多级菜单小程序

利用所学的知识写一个多级菜单

  • 要求:
    • 打印省、市、县三级菜单
    • 可返回上一级
    • 可随时退出程序
  • 代码演示
  1 # 定义一个包含(省,市,县)3级嵌套字典
  2 region = {
  3     "陕西":{
  4         "西安":{
  5             "大雁塔":[
  6                 "音乐喷泉"],
  7             "小雁塔": [
  8                 "小吃街"
  9             ]
 10         },
 11         "咸阳":{
 12             "长武":[
 13                 "苹果"
 14             ],
 15             "永寿":[
 16                 "法门寺"
 17             ]
 18         }
 19     },
 20     "上海":{
 21         "浦东":{
 22             "野生动物园":[
 23                 "狮子"
 24             ]
 25         },
 26         "徐汇":{
 27             "外滩":[
 28                 "东方明珠"
 29             ]
 30         },
 31         "宝山":{
 32             "九亭":[
 33                 "欢乐谷"
 34             ]
 35         }
 36     },
 37     "北京":{
 38         "朝阳":{
 39             "双桥路":[
 40                 "和美国际大酒店"
 41             ]
 42         },
 43         "西城":{
 44             "天安门":[
 45                 "故宫"
 46             ]
 47         },
 48     }
 49 }
 50 
 51 # print(region["上海"]["浦东"]["野生动物园"])
 52 
 53 # 定义一个变量,值为False
 54 exit_false = False
 55 
 56 # 使用while循环,while not exit_false:   等于 while True;
 57 while not exit_false:
 58     # 循环打印字典的第一级(也就是取出字典第一层的key值)
 59     for x in region:
 60         print(x)        # >>> 陕西,上海,北京
 61     # 输入字符
 62     input_1 = input("请选择省:")
 63     # 判断是否存在输入的字符
 64     if input_1 in region:
 65         while not exit_false:
 66             # 在的话打印第一层
 67             for x1 in region[input_1]:
 68                 print("\t", x1)
 69             # 输入字符
 70             input_2 = input("请选择市: ")
 71             # 判断是否存在输入的字符
 72             if input_2 in region[input_1]:
 73                 while not exit_false:
 74                     # 如果在,打印第二层
 75                     for x2 in region[input_1][input_2]:
 76                         print("\t\t", x2)
 77                     # 输入字符
 78                     input_3 = input("请选择区:")
 79                     # 判断是否存在输入的字符
 80                     if input_3 in region[input_1][input_2]:
 81                         while not exit_false:
 82                             # 如果在,打印第三层
 83                             for x3 in region[input_1][input_2][input_3]:
 84                                 print("\t\t\t", x3)
 85                             input_4 = input("已到最后一级,输入b返回上一层,输入q退出!")
 86                             # 按b返回上一层
 87                             if input_4 == "b":
 88                                 break
 89                             # 按q退出
 90                             elif input_4 == "q":
 91                                 exit_false = True
 92                     if input_3 == "b":
 93                         break
 94                     elif input_3 == "q":
 95                         exit_false = True
 96             if input_2 == "b":
 97                 break
 98             elif input_2 == "q":
 99                 exit_false = True
100     if input_1 == "b":
101         print("已到第一层,不能再到上一步!")
102     elif input_1 == "q":
103         exit_false = True
  • 代码运行
 1 F:\python3>python test.py
 2 陕西
 3 上海
 4 北京
 5 请选择城市:陕西
 6          西安
 7          咸阳
 8 请选择地区: 咸阳
 9                  长武
10                  永寿
11 请选择县城:长武
12                          苹果
13 已到最后一级,输入b返回上一层,输入q退出!
14                  长武
15                  永寿
16 请选择县城:b
17          西安
18          咸阳
19 请选择地区: b
20 陕西
21 上海
22 北京
23 请选择城市:b
24 已到第一层,不能再到上一步!
25 陕西
26 上海
27 北京
28 请选择城市:q

猜你喜欢

转载自www.cnblogs.com/jihspy/p/9963143.html