Python入門練習題(3)-三級菜單

三級菜單
· 現有省、市、縣3級結構,要求程序啓動後,允許用戶可依次選擇進入各子菜單
· 可在任意—級菜單返回上—級
· 可以在任意—級菜單退出程序
環境:Pycharm,Python3.7

#_*_coding:utf-8_*_

menu = {
    '北京':{
        '海淀':{
            '五道口':{
                'soho':{},
                '網易':{},
                'google':{}
            },
            '中關村':{
                '愛奇藝':{},
                '汽車之家':{},
                'youku':{},
            },
            '上地':{
                '百度':{},
            },
        },
        '昌平':{
            '沙河':{
                '老男孩':{},
                '北航':{},
            },
            '天通苑':{},
            '回龍觀':{},
        },
        '朝陽':{},
        '東城':{},
    },
    '上海':{
        '閔行':{
            "人民廣場":{
                '炸雞店':{}
            }
        },
        '閘北':{
            '火車戰':{
                '攜程':{}
            }
        },
        '浦東':{},
    },
    '山東':{},
}
print("q for returning to the previous unit and e for exiting")
while True:
    for i in menu.keys():
        print(i)
    choose1=input("which choice do u want to select:")
    flag=1
    #設置標誌以便於返回各個節點,不知道有沒有類似C語言goto的東西
    while flag:
        if choose1 in menu.keys():
            if len(menu[choose1])!=0:
            #這個地方有點坑,有些鍵裏面的值是空的,要做一個判斷先
                for i in menu[choose1].keys():
                    print(i)
                    flag=0
            else:
                flag=0
        elif choose1 == 'q':
            flag=0
            continue
        elif choose1 == 'e':
            exit()
        else:
            print("erro\n")
            flag=0
            continue

        flag2=1
        #同flag1
        choose2=input("which choice do u want to select:")
        while flag2:
            if choose2 in menu[choose1].keys():
                if len(menu[choose1][choose2])!=0:
                    for i in menu[choose1][choose2].keys():
                        print(i)
                        flag2=0
                else:
                    flag2=0
            elif choose2 == 'q':
                flag2=0
                continue
            elif choose2 == 'e':
                exit()
            else:
                print("erro\n")
                flag2=0
                flag=1
                continue

            flag3=1
            #同flag1
            choose3=input("which choice do u want to select:")
            while flag3:
                if choose3 in menu[choose1][choose2].keys():
                    if len(menu[choose1][choose2][choose3])!=0:
                        for i in menu[choose1][choose2][choose3].keys():
                            print(i)
                            flag3=0
                    else:
                        flag3=0

                elif choose3 == 'q':
                    flag3=0
                    flag=1
                    continue
                elif choose3 == 'e':
                    exit()
                else:
                    print("erro")
                    flag3=0
                    flag2=1
                    break
                choose4=input("Try again? (y/n)" )
                if choose4 == 'y':
                    continue
                else:
                    exit()

2018.7.25

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章