Python 三级菜单

Python 三级菜单

  • 需求

  1. 打印省、市、县三级菜单
  2. 可返回上一级
  3. 可随时退出程序
  • 代码实现
 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         },
47         '黄石':{
48             '黄石港':{},
49             '上窑':{},
50         },
51         '大冶':{
52             '商城':{},
53             '矿头':{},
54         },
55         '黄冈':{
56             '将军县':{},
57         },
58     },
59 }
60 
61 current_level = menu #记录当前循环的层
62 last_levels = []     #依次把目前进入的层 存入列表
63 
64 while True:
65     for k in current_level: #循环当前层
66         print(k)
67     choice = input("请输入地址>>: ").strip()
68     if choice == 'b':
69         if len(last_levels) == 0 :break #列表没有层记录 就是顶点层 则退出程序
70         current_level = last_levels[-1] #当输入 b ,退出时 取出上一层
71         last_levels.pop() #当返回上一层时 删除记录层级的
72     elif choice == 'q': #当输入 q ,退出程序
73         exit()
74     if choice not in current_level:continue
75     last_levels.append(current_level) #当前层加入 记录列表
76     current_level = current_level[choice] #把用户输入的层 加入到当前层 然后循环
View Code
原文地址:https://www.cnblogs.com/zhuzhiwen/p/7507966.html