Python入门-三级菜单

Posted zxf123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python入门-三级菜单相关的知识,希望对你有一定的参考价值。

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入门-三级菜单的主要内容,如果未能解决你的问题,请参考以下文章

ComboBox,三级联动菜单,新入门点小白,有些代码有待优化,大神勿喷

学习 | 基于require.js的三级联动菜单入门

Python 三级菜单

python-三级菜单和购物车程序代码(补发)

Python 三级菜单

python实现三级菜单