1.2

 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("----------输入有误----------")
原文地址:https://www.cnblogs.com/alice-bj/p/8427138.html