1 # -*- coding: utf-8 -*-
2 """
3 可依次选择进入各子菜单
4 可从任意一层往回退到上一层
5 可从任意一层退出程序
6 """
7 menu = {'北京': {'海淀': {'五道口': {'soho': {},
8 '网易': {},
9 'google': {}},
10 '中关村': {'爱奇艺': {},
11 '汽车之家': {},
12 '优酷': {}},
13 '上地': {'百度': {}}},
14 '昌平': {'沙河': {'老男孩': {},
15 '北航': {}},
16 '天通苑': {},
17 '回龙观': {}},
18 '朝阳': {},
19 '东城': {}},
20 '上海': {'闵行': {'人民广场': {'炸鸡店': {}}},
21 '闸北': {},
22 '浦东': {}},
23 '山东': {}}
24
25
26 while True:
27 for i in menu:
28 print(i)
29 level1 = input("请选择第一层,输入q表示退出:").strip()
30 if level1 == 'q':
31 break
32 elif level1 in menu:
33 while True: # 进入第二层
34 for i in menu[level1]:
35 print(i)
36 level2 = input("请选择第二层,输入q表示退出,输入p表示退到上一层:").strip()
37 if level2 == 'q':
38 exit()
39 elif level2 == 'p':
40 break
41 elif level2 in menu[level1]:
42 while True: # 进入第三层
43 for i in menu[level1][level2]:
44 print(i)
45 level3 = input("请选择第三层,输入q表示退出,输入p表示退到上一层:").strip()
46 if level3 == 'q':
47 exit()
48 elif level3 == 'p':
49 break
50 elif level3 in menu[level1][level2]:
51 for i in menu[level1][level2][level3]:
52 print(i)
53 print("到了最底层了,请退回上一层:")
54 quit = input("请输入q:")
55 exit()
1 # -*- coding: utf-8 -*-
2 """
3 可依次选择进入各子菜单
4 可从任意一层往回退到上一层
5 可从任意一层退出程序
6 """
7 menu = {'北京': {'海淀': {'五道口': {'soho': {},
8 '网易': {},
9 'google': {}},
10 '中关村': {'爱奇艺': {},
11 '汽车之家': {},
12 '优酷': {}},
13 '上地': {'百度': {}}},
14 '昌平': {'沙河': {'老男孩': {},
15 '北航': {}},
16 '天通苑': {},
17 '回龙观': {}},
18 '朝阳': {},
19 '东城': {}},
20 '上海': {'闵行': {'人民广场': {'炸鸡店': {}}},
21 '闸北': {},
22 '浦东': {}},
23 '山东': {}}
24
25 current_layer = menu
26 pro_layer = []
27 while True:
28 for i in current_layer:
29 print(i)
30 choice = input("输入p表示返回上一次,q表示退出 >:").strip()
31 if not choice: continue
32 if choice in current_layer:
33 pro_layer.append(current_layer)
34 current_layer = current_layer[choice]
35 if len(current_layer) == 0:
36 print("-------已经是底层了--------")
37 current_layer = pro_layer.pop()
38 elif choice == 'q':
39 break
40 elif choice == 'p':
41 if len(pro_layer) != 0:
42 current_layer = pro_layer.pop()
43 else:
44 print("-------已经是顶层了-------")
45 else:
46 print("----------输入有误----------")
47
48
49 # 只能记住上一层 不能记住上上层
50 # current_layer = menu
51 # pro_layer = menu
52 # while True:
53 # for i in current_layer:
54 # print(i)
55 # choice = input("输入p表示返回上一次,q表示退出 >:").strip()
56 # if not choice: continue
57 # if choice in current_layer:
58 # pro_layer = current_layer
59 # current_layer = current_layer[choice]
60 # elif choice == 'q':
61 # break
62 # elif choice == 'p':
63 # current_layer = pro_layer
64 # else:
65 # print("----------输入有误----------")