1. 程式人生 > >Python入門-三級菜單

Python入門-三級菜單

浦東 ide 子菜單 退出 題目 NPU sid append 裝逼

作業題目: 三級菜單

  • 作業需求:

menu = {
    北京:{
        海澱:{
            五道口:{
                soho:{},
                網易:{},
                google:{}
            },
            中關村:{
                愛奇藝:{},
                汽車之家:{},
                youku:{},
            },
            
上地:{ 百度:{}, }, }, 昌平:{ 沙河:{ 優衣庫:{}, 北航:{}, }, 天通苑:{}, 回龍觀:{}, }, 朝陽:{}, 東城:{}, }, 上海:{ 閔行:{ "人民廣場":{
炸雞店:{} } }, 閘北:{ 火車站:{ 攜程:{} } }, 浦東:{}, }, 山東:{}, }
需求:
可依次選擇進入各子菜單
可從任意一層往回退到上一層
可從任意一層退出程序
所需新知識點:列表、字典

基礎版:
while True:
    for i in menu:
        print(i)
    province = input("請選擇省份:  (按Q退出)
") if province == Q: exit() else: print(輸入錯誤) if province in menu: while True: for i in menu[province]: print(i) city = input("請選擇市: (按Q退出,q返回)") if city == Q: exit() if city == q: break else: print(輸入錯誤) if city in menu[province]: while True: for i in menu[province][city]: print(i) county = input("請選擇區或縣: (按Q退出,q返回)") if county == Q: exit() if county == q: break else: print(輸入錯誤) if county in menu[province][city]: while True: for i in menu[province][city][county]: print(i) choice = input(Q退出,q返回:) if choice == Q: exit() if choice == q: break else: print(輸入錯誤)

裝逼版:

rank = menu
last_rank = []
while True:
    for i in rank:
        print(i)
    choice = input(>:).strip()
    if choice in rank:
        last_rank.append(rank)      # 將當前菜單添加到列表
        rank = rank[choice]         # 進入下一層菜單
    elif choice == b:
        if len(last_rank) != 0:
            rank = last_rank.pop()  # 刪除列表最後一位元素,從而返回上一層
    elif choice == Q:
        exit()

最裏層和最外層還可以增加相應提示。

Python入門-三級菜單