python三級菜單練習
阿新 • • 發佈:2018-03-11
目的 {} div pop class 分享 odin pen 技術分享
需求:
可依次選擇進入各子菜單
可從任意一層往回退到上一層
可從任意一層退出程序
所需新知識點:列表、字典
需求:
可依次選擇進入各子菜單
可從任意一層往回退到上一層
可從任意一層退出程序
所需新知識點:列表、字典
1 # -*- coding:utf-8 -*- 2 # Author:Xiaorui 3 # 需求: 4 # 可依次選擇進入各子菜單 5 # 可從任意一層往回退到上一層 6 # 可從任意一層退出程序 7 # 所需新知識點:列表、字典 8 menu = { 9 ‘北京‘: { 10 ‘海澱‘: { 11 ‘五道口‘: { 12 ‘soho‘: {}, 13 ‘網易View Code‘: {}, 14 ‘google‘: {} 15 }, 16 ‘中關村‘: { 17 ‘愛奇藝‘: {}, 18 ‘汽車之家‘: {}, 19 ‘youku‘: {}, 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 place_menu = menu 52 last_place_layers = [] # 采用列表,目的是之後可以調用列表的pop()方法 53 while True: # while死循環保證非用戶退出就一直在循環中,且只使用一次while循環 54 for i in place_menu: 55 print(i) 56 choice = input("請輸入地名:").strip() # strip()方法除去輸入倆側空格 57 if not choice: # 判斷用戶是否輸入的已有地名 58 continue 59 else: 60 pass # if..else語句完整,便於閱讀 61 if choice in place_menu: # 判斷用戶是否輸入的已有地名 62 last_place_layers.append(place_menu) # 運用append()方法保存操作前的一層 63 place_menu = place_menu[choice] # 進入下一層 64 if not place_menu: # 判斷是否處在底層,if進行判斷時字典空為假,所以此處用not 65 print("你已經處在底層,回到上層請輸入b,退出請輸入p!") 66 else: 67 pass 68 elif choice == "b" or choice == "B": # 任意層可返回上一層 69 if len(last_place_layers) != 0: 70 place_menu = last_place_layers.pop() 71 else: 72 print("目前處於頂層!") 73 else: # 任意層可退出 74 if choice == "p" or choice == "P": 75 break 76 else: 77 pass # PEP8規範pass等不可結尾
python三級菜單練習