python三级菜单的实现

需求

可依次选择进入各子菜单
可从任意一层往回退到上一层
可从任意一层退出程序
所需新知识点:列表、字典

代码实现

# _*_ coding:_utf-8 _*_
"""
需求:
可依次选择进入各子菜单
可从任意一层往回退到上一层
可从任意一层退出程序
"""

menu = {
    '北京': {
        '海淀': {
            '五道口': {
                'soho': {},
                '网易': {},
                'google': {}
            },
            '中关村': {
                '爱奇艺': {},
                '汽车之家': {},
                'youku': {},
            },
            '上地': {
                '百度': {},
            },
        },
        '昌平': {
            '沙河': {
                '北京邮电大学': {},
                '北京航空航天大学': {},
            },
            '天通苑': {},
            '回龙观': {},
        },
        '朝阳': {},
        '东城': {},
    },
    '上海': {
        '闵行': {
            "人民广场": {
                '炸鸡店': {}
            }
        },
        '闸北': {
            '火车站': {
                '携程': {}
            }
        },
        '浦东': {},
    },
    '山东': {},
}

count = menu  # 将字典赋一个动态的值
count_1 = []  # 创建一个用来处理返回选项的列表
while True:
    for a in count:  # 把动态值赋给a
        print(a)
    name = input("请输入要查询的地点(退出请输入(q),返回上一级请输入(u)): ").lower().strip()  # 换成小写并去除开头和末尾的空格
    if name in count:  # 在字典中搜索输入值
        count_1.append(count)  # 找到值后把动态值加到列表count_1里面
        count = count[name]  # 将下级列表重新赋值给count
    elif name == "u":  # 当输入“u“时将返回上一层
        if count_1:
            count = count_1.pop()  # 把列表最后面加的值删掉,并重新赋值给count。pop会返回被删除的值
        else:
            print("已经到顶层了!")
    elif name == "q":  # 当输入“q”时将退出
        break
    else:
        print("您输入错误啦,请您重新输入!")

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值