1. 程式人生 > >Python入門基礎--三級選單

Python入門基礎--三級選單

用字典儲存資料

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

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

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,'/'))