首页 > 技术文章 > 路飞学城14天集训营作业2—三级菜单

heimu24 2018-04-08 20:35 原文

数据结构:

menu = {
    '北京':{
        '海淀':{
            '五道口':{
                'soho':{},
                '网易':{},
                'google':{}
            },
            '中关村':{
                '爱奇艺':{},
                '汽车之家':{},
                'youku':{},
            },
            '上地':{
                '百度':{},
            },
        },
        '昌平':{
            '沙河':{
                '老男孩':{},
                '北航':{},
            },
            '天通苑':{},
            '回龙观':{},
        },
        '朝阳':{},
        '东城':{},
    },
    '上海':{
        '闵行':{
            "人民广场":{
                '炸鸡店':{}
            }
        },
        '闸北':{
            '火车战':{
                '携程':{}
            }
        },
        '浦东':{},
    },
    '山东':{},
}

需求:
可依次选择进入各子菜单
可从任意一层往回退到上一层
可从任意一层退出程序
所需新知识点:列表、字典

 1 # -*- coding:utf-8 -*-
 2 # author:heimu
 3 '''
 4 需求:
 5 可依次选择进入各子菜单
 6 可从任意一层往回退到上一层
 7 可从任意一层退出程序
 8 所需新知识点:列表、字典
 9 
10 '''
11 menu = {
12     '北京':{
13         '海淀':{
14             '五道口':{
15                 'soho':{},
16                 '网易':{},
17                 'google':{}
18             },
19             '中关村':{
20                 '爱奇艺':{},
21                 '汽车之家':{},
22                 'youku':{},
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 update_menu = menu          # 定义临时保存菜单的变量
56 menu_list = []              # 定义存储每次菜单更新的列表
57 while True:
58     print('-------- ' + str(list(update_menu.keys())) + '---------')
59     input_choose = input("【b(B)返回,q(Q)退出】请输入你的选择:").strip()
60     if input_choose in update_menu:
61         menu_list.append(update_menu)                   # 把整个菜单(字典)当做一个列表元素存储
62         update_menu = update_menu[input_choose]         # 更新菜单
63     elif input_choose.lower() == 'b':
64         if menu_list:                                   # 如果列表不为空
65             update_menu = menu_list.pop()               # 将列表的最后一个元素(即上一个菜单状态)弹出
66     elif input_choose.lower() == 'q':
67         break
68     else:
69         print("输入错误,请重新输入")
View Code

 



推荐阅读