三級菜單實例
阿新 • • 發佈:2017-05-25
none 菜單 images nbsp xxx for 一點 長度 ges
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:XXX map = { ‘浦西‘:{ ‘黃浦區‘:{ ‘城隍廟‘:[‘小吃‘,‘九曲橋‘,‘綠波廊‘], ‘南京路步行街‘:[‘第一百貨‘,‘沈大成‘,‘永安百貨‘], }, ‘徐匯區‘:{ ‘徐家匯‘:[‘百腦匯‘,‘匯金百貨‘,‘港匯廣場‘], ‘龍華寺‘:[‘古寺之一‘,‘風水寶地‘,‘燒香靈‘], },View Code‘靜安區‘:{ ‘馬戲城‘:[‘時空之旅‘,‘馬戲‘,‘特技表現‘], ‘大靈靈石公園‘:[‘郁金香展‘,‘人工湖劃船‘,‘婚紗拍攝地‘], }, }, ‘浦東‘:{ ‘浦東新區‘:{ ‘東方明珠‘:[‘上海標誌性地標‘,‘太空艙‘,‘旋轉餐廳‘], ‘海洋水族館‘:[‘亞洲第一‘,‘海底隧道‘,‘28個主題館‘], }, ‘原川沙‘:{ ‘迪士尼樂園‘:[‘大陸第一‘,‘七大主題樂園‘,‘兩座主題酒店‘], }, ‘原南匯‘:{ ‘野生動物園‘:[‘首座國家級野生動物園‘,‘兩大參觀區‘,‘AAAAA‘], ‘南匯鮮花港‘:[‘多肉展‘,‘百合花展‘,‘菊花展‘], }, }, ‘崇明‘:{ ‘中北部‘:{ ‘東平森林公園‘:[‘AAAAA‘,‘華東區最大的人造平原森林‘,‘上海著名旅遊勝地‘], }, ‘南部‘:{ ‘西沙濕地‘:[‘候鳥‘,‘日落‘,‘觀潮‘], },‘西部‘:{ ‘明珠湖‘:[‘天然湖泊‘,‘鸕鶿保護地‘,‘扶搖直上‘], }, }, } level = [] while True: for key in map: print(key) choice = input("請選擇,按b退到上一級菜單:").strip() # if choice == ‘b‘:break # 由於不用while套while的用法,這樣寫就不合理 if choice == ‘b‘: # 這裏輸入b需要退到上一級,卻列表中最後一個值 if len(level) == 0:break # 如果level長度為0,就退出整個while語句 map = level[-1] level.pop() # 這裏需要將level列表最後一個值刪除 if len(choice) == 0 or choice not in map:continue # 這裏continue就是繼續下一個語句 level.append(map) map = map[choice] # 這裏是核心代碼,每次把用戶輸入的內容,作為子字典 ‘‘‘ 此段代碼的核心是map = map[choice] 作用是將重復代碼(while套while)減少 第一,關鍵點時查找字典的時候,定位到下一級字典,並且將下一級字典賦值給while語句中的字典 第二,由於用了第一點的語句,那麽就需要給退出上一級菜單做標記。 解決辦法就是,用一個空列表,將父字典的key值賦值給空列表的最後一位 如果退出的時候,就將列表中最後一位刪除即可。 ‘‘‘
三級菜單實例