1. 程式人生 > >Python學習之day02---學習建立三級級聯選單

Python學習之day02---學習建立三級級聯選單

1、要求使用"key-value"字典,建立一個三級級聯選單,每個選單下面包含相應的子選單:例如:map ={ '山東省':{"濟南":{"高新區":["科技園","會展中心"]}}}

2、要求可以逐級選單進行返回上級選單。

#  一、定義選單內容

map_list ={
    '山東':{
        "濟南":{
            "高新區":["銀座","管委會"],
            "會展":["停車場","廣場"]
        },
        "青島":{
            "城陽區":["萬達","后街"],
            "高新區":["科技館","會展"]
        },
        "菏澤": {
            "曹縣": ["萬達", "后街"],
            "單縣": ["科技館", "會展"]
        }
    },
    '河南': {
        "鄭州": {
            "高新區": ["銀座", "管委會"],
            "會展": ["停車場", "廣場"]
        },
        "洛陽": {
            "洛龍區": ["萬達", "后街"],
            "高新區": ["科技館", "會展"]
        },
        "商丘":{
            "市區": ["萬達", "后街"],
            "高新區": ["科技館", "會展"]
        },
    },
    '陝西': {
        "渭南": {
            "高新區": ["銀座", "管委會"],
            "會展": ["停車場", "廣場"]
        },
        "寶雞": {
            "寶雞區": ["萬達", "后街"],
            "高新區": ["科技館", "會展"]
        },
        "西安": {
            "市區": ["萬達", "后街"],
            "高新區": ["科技館", "會展"]
        },
    },
}

#  二、定義
while True:
    for menu_list in map_list:                                #定義一級聯選單,將已經完成級聯的選單傳給新定義的數值menu_list
        print(menu_list)                                      #列印一級選單
# -------------------------------------------------------------------------------列印第一層輸出,列印省份    
    chose_list = input("選擇進入1>>:")                        #將使用者輸入定義為chose_list
    if  chose_list in map_list:                               #判斷使用者輸入,如果使用者輸入的資料在定義的字典裡面,則為真
        while True:
            for menu_list1 in map_list[chose_list]:           #定義二級選單menu_list1,如果使用者輸入的這個選單在一級選單裡面,則進行列印
                print("\t",menu_list1)
# -------------------------------------------------------------------------------列印第二層輸出,列印城市
            chose_list1 = input("選擇進入2>>:")                #將使用者輸入定義為chose_list1
            if chose_list1 in map_list[chose_list]:            #判斷使用者輸入,如果使用者輸入的資料在定義的字典裡面,則為真
               while True:
                    for menu_list2 in map_list[chose_list][chose_list1]:    #定義三級選單menu_list2,如果使用者輸入的這個選單在二級選單裡面,則進行列印
                        print("\t\t",menu_list2)
# -------------------------------------------------------------------------------列印第三層輸出,列印區縣
                    chose_list2 = input("選擇進入3>>:")                         #將使用者輸入定義為chose_list2
                    if chose_list2 in map_list[chose_list][chose_list1]:        #判斷使用者輸入,如果使用者輸入的資料在定義的字典裡面,則為真
                        for menu_list3 in map_list[chose_list][chose_list1][chose_list2]:            #定義三級選單menu_list3,如果使用者輸入的這個選單在一級、二級、三級選單裡面,則進行列印
                            print("\t\t\t",menu_list3)
# -------------------------------------------------------------------------------列印第三層區縣裡面所包含的具體地點事物
                        chose_list3 = input("最後一層,按b進行返回。>>:")        #判斷使用者是否需要返回,返回上一層級區縣
                        if chose_list3 == 'b':
                            break
# -------------------------------------------------------------------------------新增判斷,來進行確認終端使用者是否想要返回上級選單。也就是返回區縣                           
                    if chose_list2 == 'b':                                            #判斷使用者是否返回
                        break
# -------------------------------------------------------------------------------新增判斷,來進行確認終端使用者是否想要返回上級選單。也就是返回城市選單
            if chose_list1 == 'b':                                                     #判斷使用者是否返回
                break
# -------------------------------------------------------------------------------新增判斷,來進行確認終端使用者是否想要返回上級選單。也就是返回省份