三级菜单。

 
 1 menu = {
 2     '北京':{
 3         '海淀':{
 4             '五道口':{
 5                 'soho':{},
 6                 '网易':{},
 7                 'google':{}
 8             },
 9             '中关村':{
10                 '爱奇艺':{},
11                 '汽车之家':{},
12                 'youku':{},
13             },
14             '上地':{
15                 '百度':{},
16             },
17         },
18         '昌平':{
19             '沙河':{
20                 '老男孩':{},
21                 '北航':{},
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 1. 可依次选择进入各子菜单  # 2个变量来做字典, for 循环key
47 2. 可从任意一层往回退到上一层  # input 选择
48 3. 可从任意一层退出程序   # 退出循环
49 '''
50 
51 c_menu = menu   # 当前的字典 c=current
52 p_menu = []    # 通过列表来存储字典信息, P=previous
53 while True:
54     # 循环打印字典列表key
55     for key in c_menu:
56         print(key)
57     choice = input(">>>:").strip().lower()  # 等待用户输入 去掉空格全部小写方便后面识别
58     if choice in c_menu:   # 进入下一层
59         p_menu.append(c_menu)  # 把当前层添加到列表
60         c_menu = c_menu[choice]    # 当前层变为选择choice的下一层
61     elif choice == "b":
62         if p_menu:
63             c_menu = p_menu[-1]# 从列表中取到最后一个值,即循环的上一层,赋值给current_menu
64             p_menu.pop()   # 删除后,保持列表不会在返回上层出错   
65     elif choice == "q": break  # 如果输入q,结束程序。
66     else:
67         print('错误信息,请再次选择'.center(50,'*'))
68     if not c_menu:
69         print('没有信息,请按B返回:')
 

 

猜你喜欢

转载自www.cnblogs.com/benzhangwen/p/11578459.html