Python练习----多级菜单

多级菜单要求:

     1.三级菜单    
     2.可依次选择进入各子菜单
     3.可以返回上一层
     4.输入‘q’可以退出
 
脚本:
 1 zone = {
 2      '北京' : {
 3          '朝阳' : ['太阳宫','芍药居'],
 4          '丰台' : ['六里桥','大红门'],
 5          '海淀' : ['中关村','大钟寺']
 6      },
 7      '保定' : {
 8          '高碑店' : ['白马','市一中'],
 9          '涿州' : ['三义宫','松林店'],
10      },
11      '广东' : {
12          '深圳' : ['aa','bb'],
13          '东莞' : ['11','22']
14      }
15  }
16 
17 province_list = list(zone.keys())
18 
19 while True:
20      print("".center(50,'*'))
21      for i in province_list:
22          print(province_list.index(i)+1,i)
23      pro_id = input("请输入省编号,或输入q(quit)退出:")
24      if pro_id.isdigit():
25          pro_id = int(pro_id)
26          if pro_id > 0 and pro_id <= len(province_list):
27              pro_name = province_list[pro_id-1]
28              city_list = list(zone[pro_name].keys())
29              while True:
30                  print("".center(50,'*'))
31                  for v in city_list:
32                      print(city_list.index(v)+1,v)
33                  city_id = input("请输入市编号,或输入b(back)返回上级菜单,或输入q(quit)退出:")
34                  if city_id.isdigit():
35                      city_id = int(city_id)
36                      if city_id > 0 and city_id <= len(city_list):
37                          city_name = city_list[city_id-1]
38                          town_list = zone[pro_name][city_name]
39                          while True:
40                              print("".center(50,'*'))
41                              for j in town_list:
42                                  print(town_list.index(j)+1,j)
43                              back_or_quit = input("输入b(back)返回上级菜单,或输入q(quit)退出:")
44                              if back_or_quit == 'b':
45                                  break
46                              elif back_or_quit == 'q':
47                                  exit()
48                              else:
49                                  print("输入非法!")
50                      else:
51                          print("编号%d不存在。"%city_id)
52                  elif city_id == 'b':
53                      break
54                  elif city_id == 'q':
55                      exit()
56                  else:
57                      print("输入非法!")
58          else:
59              print("编号%d不存在。"%pro_id)
60      elif pro_id == 'q':
61          break
62      else:
63          print("输入非法!")

执行结果:

*********************** 省 ************************
1 北京
2 保定
3 广东
请输入省编号,或输入q(quit)退出:1
*********************** 市 ************************
1 朝阳
2 丰台
3 海淀
请输入市编号,或输入b(back)返回上级菜单,或输入q(quit)退出:b
*********************** 省 ************************
1 北京
2 保定
3 广东
请输入省编号,或输入q(quit)退出:q

 

posted on 2017-06-29 17:15  明.Sir  阅读(260)  评论(0编辑  收藏  举报

导航