1. 程式人生 > >三級菜單實例

三級菜單實例

none 菜單 images nbsp xxx for 一點 長度 ges

技術分享

技術分享
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:XXX


map = {
    浦西:{
        黃浦區:{
            城隍廟:[小吃,九曲橋,綠波廊],
            南京路步行街:[第一百貨,沈大成,永安百貨],
        },
        徐匯區:{
            徐家匯:[百腦匯,匯金百貨,港匯廣場],
            龍華寺:[古寺之一,風水寶地,燒香靈],
        },
        
靜安區:{ 馬戲城:[時空之旅,馬戲,特技表現], 大靈靈石公園:[郁金香展,人工湖劃船,婚紗拍攝地], }, }, 浦東:{ 浦東新區:{ 東方明珠:[上海標誌性地標,太空艙,旋轉餐廳], 海洋水族館:[亞洲第一,海底隧道,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值賦值給空列表的最後一位 如果退出的時候,就將列表中最後一位刪除即可。 ‘‘‘
View Code

三級菜單實例