【Pthon入门学习】多级菜单小例子

时间:2024-04-20 20:38:24
【Pthon入门学习】多级菜单小例子【Pthon入门学习】多级菜单小例子
  1 menu_list = {
2 '北京':{
3 '昌平':{
4 '回龙观':{
5 '和谐家园':{},
6 '矩阵小区':{},
7 '北店家园':{}
8 },
9 '沙河':{
10 '北街家园1区':{},
11 '北街家园2区':{},
12 '北师大附小':{}
13 }
14 },
15 '海淀':{
16 '西二旗':{
17 '云端时代':{},
18 '百度':{},
19 '软件园':{}
20 },
21 '西三旗':{
22 '上地五街':{},
23 '上地三街':{},
24 '方正集团':{}
25 }
26 }
27 },
28 '邯郸':{
29 '丛台区':{
30 '黄粱梦':{
31 '东官庄':{},
32 '王李庄':{}
33 },
34 '沙河':{
35 '北街家园1区1':{},
36 '北街家园2区2':{},
37 '北师大附小3':{}
38 }
39 },
40 '复兴区':{
41 '永年':{
42 '云端时代1':{},
43 '百度2':{},
44 '软件园3':{}
45 },
46 '肥乡':{
47 '上地五街1':{},
48 '上地三街2':{},
49 '方正集团3':{}
50 }
51 }
52 },
53 }
54 map_list = []
55 cur_layer_pos = 0
56 cur_layer_keys = []
57 cur_layer_keys_values = []
58 is_exit = False
59 is_not_next = True
60 while not is_exit:
61 if is_not_next:
62 if cur_layer_pos == 0:
63 cur_layer_keys = menu_list.keys()
64 else:
65 cur_layer_keys = map_list[cur_layer_pos - 1][1].keys()
66
67 if len(cur_layer_keys) > 0:
68 is_not_next = True
69 print('可以进入的下一级菜单显示:', list(cur_layer_keys))
70 else:
71 print("已经到菜单底部啦,只能输入p返回上一级菜单")
72 cur_menu_name = input('请输入菜单名:')
73 if cur_menu_name.lower() == 'p':
74 if cur_layer_pos > 0:
75 map_list.pop()
76 cur_layer_pos -= 1
77 is_not_next = True
78 else:
79 print('已经到*菜单啦.')
80 elif cur_menu_name.lower() == 'q':
81 is_exit = True
82 elif cur_menu_name in cur_layer_keys:
83 map_list.append([cur_menu_name, menu_list[cur_menu_name] if cur_layer_pos == 0 else map_list[cur_layer_pos - 1][1][cur_menu_name]])
84 cur_layer_pos += 1
85 else:
86 if len(cur_layer_keys) > 0:
87 print("请输入正确的菜单名称...")
88 else:
89 is_not_next = False
90 print("已经到菜单底部啦,只能输入p返回上一级菜单")
91 print('当前所在的位置:', [_map[0] for _map in map_list])
92

多级菜单的要求如下:

1. 可以依次进入子菜单

2. 任意级菜单均可返回上一级

3. 任意级菜单均可退出程序

主要是锻炼列表和字典数据类型

三级菜单实现可以如下:

http://www.cnblogs.com/bg0131/p/6416816.html