三级菜单

作业需求:

数据结构:

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

需求:

  1、可依次选择进入各子菜单

  2、可从任意一层往回退到上一层

  3、可从任意一层退出程序

  4、所需知识点:列表、字典

直接上代码:

 1 #encoding = 'utf-8'
 2 #python code by zwj
 3 
 4 menu = {
 5     '北京':{
 6         '海淀':{
 7             '五道口':{
 8                 'soho':{},
 9                 '网易':{},
10                 'google':{}
11             },
12             '中关村':{
13                 '爱奇艺':{},
14                 '汽车之家':{},
15                 'youku':{},
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 }
47 
48 
49 
50 current_layer = menu
51 all_layer = []
52 while True:
53     for k in current_layer :  # 打印出key,北京、上海和山东
54         print(k)
55     choice = input(">>:").strip()
56     if choice in current_layer :
57         all_layer.append(current_layer)
58         current_layer = current_layer.get(choice)
59     elif choice == 'b':
60         if len(all_layer) != 0:
61             current_layer = all_layer.pop()
62     elif choice == 'q':
63         exit()

完结!欢迎评论交流。

  

原文地址:https://www.cnblogs.com/NuoMiGao/p/9856672.html