標籤:分享 網易 opened 不可 程式 blog 運用 while you
需求:
可依次選擇進入各子功能表
可從任意一層往回退到上一層
可從任意一層退出程式
所需新知識點:列表、字典
1 # -*- coding:utf-8 -*- 2 # Author:Xiaorui 3 # 需求: 4 # 可依次選擇進入各子功能表 5 # 可從任意一層往回退到上一層 6 # 可從任意一層退出程式 7 # 所需新知識點:列表、字典 8 menu = { 9 ‘北京‘: {10 ‘海澱‘: {11 ‘五道口‘: {12 ‘soho‘: {},13 ‘網易‘: {},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 = menu52 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 continue59 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進行判斷時字典空為假,所以此處用not65 print("你已經處在底層,回到上層請輸入b,退出請輸入p!")66 else:67 pass68 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 break76 else:77 pass # PEP8規範pass等不可結尾View Code
python三級菜單練習