Python之三级菜单

这篇博客介绍了如何使用Python实现一个具备三层导航功能的菜单系统。用户可以逐级深入菜单,从任一层返回上一级,或者直接退出。示例来源于老男孩教育的教学案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

三级菜单:

1. 可以一层一层的进入到所有层 ;
2. 可以在每层返回上一层 ;
3. 可以在任意层回退上一层或退出;

# Administrator 2019/6/12 13:41
menu = {
    '北京':{
        '朝阳':{
            '国贸':{},
                'CICC':{},
                'HP':{},
                '渣打银行':{},
                'CCTV':{},
            },
            '望京':{
                '陌陌':{},
                '奔驰':{},
                '360':{},
            },
            '三里屯':{
                '优衣库':{},
                'apple':{},
        },
        '昌平':{
            '沙河':{
                '老男孩':{},
                '阿泰包子':{},
            },
            '天通苑':{
                '链家':{},
                '我爱我家':{},
            },
            '回龙观':{},
        },
        '海淀':{
            '五道口':{
                '谷歌':{},
                '网易':{},
                'sohu':{},
                '快手':{},
            },
            '中关村':{
                'youku':{},
                'Iqiyi':{},
                '汽车之家':{},
                '新东方':{},
                'QQ':{},
            },

        },
    },
    '上海':{
        '浦东':{
            '陆家嘴':{
                'CICC':{},
                '高盛':{},
                '摩根':{},
            },
        },
        '闵行':{},
        '静安':{},
    },
    '山东':{
        '济南':{},
        '德州':{
            '乐陵':{
                '丁务镇':{},
                '城区':{},
            },
            '平原':{},
        },
        '青岛':{},
    },
}

floor = menu    #定义当前层为menu,实现动态循环;
empty_list = []      #定义一个空列表,保存所有父级,最后一个元素永远都是父级;
while True:     #while True 语句中一定要有结束该循环的break语句,否则会一直循环下去;
    for key in floor:
        print(key)      #打印菜单内容
    #让用户选择输入,strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列;
    choice = input("请输入地址>>>【返回/b,退出/q】:").strip()
    if choice == 'q':   #判断如果用户输入q,便break跳出循环;
        break
    #判断用户如果输入的字符长度如果为0,便跳出本次循环;
    if len(choice) == 0 :   #len() 方法返回对象(字符、列表、元组等)长度或项目个数。
        continue
    if choice in floor:     #如果用户输入的是菜单里的内容;
        #在进入下一层之前,把当前层追加到列表中;
        #下一次循环时,如果用户输入b,就可以直接取列表的最后一个值出来;
        empty_list.append(floor) #append() 方法用于在列表末尾添加新的对象;
        floor = floor[choice]   #改成下一层;
    elif choice == 'b':         #如果用户输入b;
        if empty_list:          #判断列表是否为空;
            #pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
            floor = empty_list.pop()    #取出列表最后一个值,因为他就是当前层的父级;
    else:
        print('您输入有误!')

执行结果:

 

注:本实验题目采用老男孩教育例题;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值