Python入門基礎–三級選單

Mifen發表於2018-11-30

用字典儲存資料

可以隨時返回上一級,隨時退出程式

只能用迴圈判斷等內建方法,不得匯入模組

menu = {
        `廣東`:{
            `廣州`:{
                `越秀區`:{
                    `面積`:`33.80`,
                    `人口`:`115萬`,
                    `郵政編碼`:`510030`,
                    `區政府駐地`:`越華路183號`,
                    `行政程式碼`:`440104`
                },`天河區`:{
                    `面積`:`96.33`,
                    `人口`:`143萬`,
                    `郵政編碼`:`510630`,
                    `區政府駐地`:`天府路1號`,
                    `行政程式碼`:`440106`
                },`荔灣區`:{
                    `面積`:`59.10`,
                    `人口`:`89萬 `,
                    `郵政編碼`:`510145`,
                    `區政府駐地`:`中山七路328號`,
                    `行政程式碼`:`440103`
                }
            },
            `深圳`:{
                `福田區`:{
                    `面積`:`78.66`,
                    `常住人口`:`135.71`,
                    `戶籍人口`:`83.35`,
                    `非戶籍人口`:`52.36`,
                    `郵政編碼`:`518000`
                },`羅湖區`:{
                    `面積`:`78.76`,
                    `常住人口`:`95.37`,
                    `戶籍人口`:`55.92`,
                    `非戶籍人口`:`39.46`,
                    `郵政編碼`:`518001`
                }
            }



                },
        `湖北`:{
            `武漢`:{
                `礄口區`:{
                    `行政程式碼`:`420104`,
                    `面積`:`41.9`,
                    `常住人口`:`64萬`,
                    `郵政編碼`:`430000`,
                    `政府駐地`:`榮華街道沿江大道518號`
                },`江岸區`:{
                    `行政程式碼`:`420102`,
                    `面積`:`64.24`,
                    `常住人口`:`121萬`,
                    `郵政編碼`:`430014	`,
                    `政府駐地`:`四唯街道六合路1號`
                }
            },
            `黃石`:{
                `大冶市`:{
                    `面積`:`1566.3`,
                    `人口`:`95.9萬(2014年)`,
                    `政府駐地`:`東嶽路街道湛月路`
                },`陽新縣`:{
                    `面積`:`2780`,
                    `人口`:`105.94萬(2014年)	`,
                    `政府駐地`:`興國鎮儒學路`
                }
            }

                }
        }

  

dynamic_menu = menu  #實現動態迴圈選單
last_meny_list = []  #儲存所有的父級層的值,最好一個為當前層的上一層

while True:
    #迴圈列印出當前選單的所有key
    for key in dynamic_menu:
        print(key)
    choice = input(`>>>:`).strip()
    if len(choice) == 0:continue  #如果沒有輸入則不執行以下程式碼,節約資源
    if choice in dynamic_menu:  #判斷輸入的值是否在所選範圍
        last_meny_list.append(dynamic_menu)  #記錄上一層的值存到列表 ,為了實現隨時返回上一層功能
        dynamic_menu = dynamic_menu[choice]  #動態改成下一層的值
    elif choice == `9`:  #返回上一層
        if last_meny_list:
            dynamic_menu = last_meny_list.pop()
    elif choice == `886`: #退出迴圈
        break
    else:
        print(`無此項`.center(20,`*`))
print(`bye`.center(30,`/`))

  

相關文章