Python實現三級菜單
阿新 • • 發佈:2018-06-24
append google 取出 Go 依次 utf article spa 退出
需求: 可依次選擇進入各子菜單 可從任意一層往回退到上一層 可從任意一層退出程序 所需新知識點:列表、字典
只用一個while循環
1 #! -*- coding:utf-8 -*- 2 3 menu = { 4 ‘北京‘: { 5 ‘海澱‘: { 6 ‘五道口‘: { 7 ‘soho‘: {}, 8 ‘網易‘: {}, 9 ‘google‘: {} 10 }, 11 ‘中關村‘: { 12 ‘愛奇藝‘: {}, 13 ‘汽車之家‘: {}, 14 ‘youku‘: {}, 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 current_layer = menu # 實現動態循環 47 parent_layer = [] # 保留所有父層,最後一個元素永遠為父層 48 49 while True: 50 print(‘-‘ * 10, "菜單", ‘-‘ * 10) 51 for i in current_layer: # 遍歷打印地址 52 print(i) 53 print("請在下方輸入菜單名稱,或 b:返回上一層,q:退出\n", ‘-‘ * 26) 54 choice = input(" >>> ").strip() 55 if choice in current_layer: 56 if current_layer[choice]: # 判斷是否為末層 57 parent_layer.append(current_layer) # 進入子層前,添加當前層作為父層 58 current_layer = current_layer[choice] # 修改子層 59 else: 60 print(‘當前是最後一頁‘) 61 elif choice == ‘‘: 62 continue 63 elif choice == ‘b‘ or choice == ‘B‘: # 返回上層 64 if parent_layer: # 判斷 parent_layer 是否為空 65 current_layer = parent_layer.pop() # 取出當前層父層 66 # 退出循環 67 elif choice == ‘q‘ or choice == ‘Q‘: 68 break 69 else: 70 print("\033[34;1m輸入有誤,請重新輸入\033[0m")
Python實現三級菜單