数据结构:
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