python 實現三級菜單

要求:spa

  1. 可選擇進入各級子菜單
  2. 在各級菜單下能夠選擇退出
  3. 在子菜單下能夠返回上一級菜單

Readme:code

  運行程序,輸入菜單選項,進入對應的子菜單blog

 

# Joe Young

data = {
    '山東':{
        '濟南':[
            '市中區', '天橋區', '歷下區', '槐蔭區', '歷城區', '章丘市',
            '長清縣', '平陰縣', '濟陽縣', '商河縣'
        ],
        '青島':[
            '市南區', '市北區', '四方區', '李滄區', '黃島區', '嶗山區',
            '城陽區', '膠州市', '即墨市', '平度市', '膠南市', '萊西市'
        ],
        '棗莊':[
            '市中區', '寒亭區', '臺兒莊', '嶧城區', '薛城區', '滕州市'
        ],
        '東營':[
            '東營區', '河口區', '牛莊區', '利津縣', '墾利縣', '廣饒縣'
        ],
        '濰坊':[
            '濰城區', '坊子區', '寒亭區', '奎文區', '青州市', '諸城市',
            '壽光市', '安丘市', '高密市', '昌邑市', '昌樂縣', '臨朐縣'
        ],
        '濱州':[
            '濱州市', '沾化縣', '博興縣', '鄒平縣', '惠民縣', '陽信縣',
            '無棣縣'
        ],
        '煙臺':[
            '芝罘區', '福山區', '萊山區', '牟平區', '龍口市', '萊陽市',
            '蓬萊市', '招遠市', '棲霞市', '海陽市', '萊州市', '長島縣'
        ],
        '濟寧':[
            '市中區', '任城區', '曲阜市','兗州市', '鄒城市', '汶上縣',
            '泗水縣', '微山縣', '金鄉縣','嘉祥縣', '魚臺縣'
        ],
        '泰安':[
            '泰山區', '郊區', '新泰市', '肥城市', '寧陽縣', '東平縣'
        ],
        '威海':[
            '環翠區', '榮城市', '文登市', '乳山市'
        ],
        '日照': [
            '東港區', '五蓮縣', '莒縣'
        ],
        '萊蕪': [
            '萊城區', '鋼城區'
        ],
        '臨沂': [
            '蘭山區', '羅莊區', '河東區', '沂南縣', '沂水縣', '莒南縣',
            '臨沭縣', '郯城縣', '蒼山縣', '費縣', '平邑縣', '蒙陰縣'
        ],
        '菏澤': [
            '菏澤市', '鄄城縣', '鉅野縣', '成武縣', '單縣', '定陶縣',
            '曹縣', '東明縣', '鄆城縣'
        ],
        '聊城': [
            '東昌府區', '臨清市', '高唐縣', '茌平縣', '東阿縣', '陽谷縣',
            '莘縣', '冠縣'
        ],
        '德州': [
            '德州區', '樂陵市', '禹城市', '陵縣', '平原縣', '夏津縣',
            '武城縣', '齊河縣', '臨邑縣', '寧津縣', '慶雲縣'
        ]
    },

    '北京':{
        '東城區':[
            '安定門', '建國門', '朝陽門', '東直門', '東華門'
        ],
        '西城區':[
            '西長安街', '金融街', '牛街', '廣安門內', '廣安門外'
        ],
        '朝陽區':[
            '南磨房', '高碑店', '將臺', '太陽宮', '小紅門'
        ],
        '豐臺區':[
            '右安門', '太平橋', '西羅園', '大紅門', '南苑'
        ],
        '石景山區':[
            '八寶山', '老山', '八角', '古城', '蘋果園'
        ],
        '海淀區':[
            '萬壽路', '羊坊店', '甘家口', '八里莊', '紫竹院'
        ]
    },

    '天津':{
        '西青區':{
            '西營門街道', '李七莊街道', '赤龍南街道', '赤龍北街道', '中北鎮'
        },
        '和平區':{
            '勸業場街道', '小白樓街道', '五大道街道', '新興街道', '南營門街道'
        },
        '河東區':{
            '大王莊街道', '大直沽街道', '中山門街道', '富民路街道', '二號橋街道'
        },
        '河西區':{
            '大營門街道', '下瓦房街道', '桃園街道', '掛甲寺街道', '馬場街道'
        },
        '南開區':{
            '長虹街道', '鼓樓街道', '興南街道', '廣開街道', '萬興街道'
        }
    }
}


while True:
    for i in data:  # 輸出一級菜單
        print(i)

    level1 = input('選擇進入,或輸入q退出:')

    if level1 == 'q':       # 輸入'q'退出
        exit()

    if level1 not in data:  # 判斷輸入是否正確
        print('輸入有誤,請從新輸入:')
        continue
    else:
        while True:
            for j in data[level1]:  # 輸出二級菜單
                print('\t', j)

            level2 = input('選擇進入,輸入b返回上一級,輸入q退出:')

            if level2 == 'q':   # 輸入'q'退出
                exit()
            elif level2 == 'b': # 輸入'b'返回一級菜單
                break
            else:
                if level2 not in data[level1]:  # 判斷輸入是否正確
                    print('輸入有誤,請從新輸入:')
                    continue    # 輸入有誤,結束本次循環
                else:
                    for k in data[level1][level2]:  # 輸出三級菜單
                        print('\t\t', k)

            flag = True
            while flag:
                choice = input('輸入b返回上一級,輸入q退出:')
                if choice == 'b':
                    flag = False
                elif choice == 'q':
                    exit()
                else:
                    continue
            else:           # 輸入'b' 時,flag = False,結束 119 行的 while 循環
                continue
相關文章
相關標籤/搜索