- 三级菜单
- 可依次选择进入各子菜单
- 所需新知识点:列表、字典
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 }
1 while True:
2 for key in menu:
3 print(key)
4 choice = input(">>:").strip()
5 if len(choice) == 0:continue
6 if choice == "b":break
7 if choice not in menu:continue
8
9 while True:
10 for key2 in menu[choice]:
11 print(key2)
12 choice2 = input(">>:").strip()
13 if len(choice2) == 0: continue
14 if choice2 == "b": break
15 if choice2 not in menu[choice]: continue
16
17 while True:
18 for key3 in menu[choice][choice2]:
19 print(key3)
20 choice3 = input(">>:").strip()
21 if len(choice3) == 0: continue
22 if choice3 == "b": break
23 if choice3 == "q": exit()
24 if choice3 not in menu[choice][choice2]: continue
25
26 while True:
27 for key4 in menu[choice][choice2][choice3]:
28 print(key4)
29 choice4 = input(">>:").strip()
30 if len(choice4) == 0: continue
31 if choice4 == "b": break
32 if choice4 not in menu[choice][choice2][choice3]: continue
1 current_level = menu
2 last_levels = []
3 while True:
4 for key in current_level:
5 print(key)
6 choice = input(">>:").strip()
7 if len(choice) == 0: continue
8 if choice == "b":
9 # current_level = last_level #把当前层改成父亲层,这样下一次循环就回到上一层
10 #if not last_levels :break
11 if len(last_levels) == 0 :break
12 current_level = last_levels[-1]
13 last_levels.pop()
14 if choice not in current_level:continue
15 # last_level = current_level #记住当前层
16 last_levels.append(current_level)
17 current_level = current_level[choice] #进入下一层