写代码:三级菜单

 1 # encoding: utf-8
 2 
 3 ################################################
 4 # Task Name: 三级菜单                           #
 5 # Description:可依次选择进入各子菜单              #
 6 #              可从任意一层往回退到上一层          #
 7 #              可从任意一层退出程序               #
 8 # ##############################################
 9 
10 menu = {
11     '北京': {
12         '海淀': {
13             '五道口': {
14                 'soho': {},
15                 '网易': {},
16                 'google': {}
17             },
18             '中关村': {
19                 '爱奇艺': {},
20                 '汽车之家': {},
21                 'youku': {},
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     '山东': {},
52 }
53 
54 
55 prompt = "请输入菜单名,进入子菜单
 输入'b'回到上级菜单
 输入'q'退出程序:"
56 current_menu = menu  # 当前菜单
57 parents_menu = []  # 父菜单
58 
59 
60 while True:
61     if len(current_menu) == 0:
62         print('当前菜单为最底层')
63     for i in current_menu:
64         print('菜单-->', i)
65     choice = input(prompt).strip()
66     if choice in current_menu:
67         parents_menu.append(current_menu)  # 记录父菜单列表
68         current_menu = current_menu[choice]  # 当前菜单变为原菜单的子菜单
69     elif choice == 'b':
70         if len(parents_menu) != 0:
71             current_menu = parents_menu.pop()  # 此命令删除最后一个列表元素并返回值给当前菜单 。
72         else:
73             print('已到菜单最顶层')
74     elif choice == 'q':
75         print('您已退出程序')
76         break
77     else:
78         if choice not in current_menu:
79             print("错误输入菜单{},请检查从新输入".format(choice))
80             continue
原文地址:https://www.cnblogs.com/demilyc/p/10018226.html