三级菜单

本文介绍了一个基于多级字典的菜单导航系统设计方法,通过动态循环实现用户在不同层级间自由切换的功能,包括进入子菜单、返回上级菜单及退出主菜单。
#__author:"Ryzreal"
#date :2018/6/21
#要求:可以一层层进入到所有层,可以返回上一层,可以在任意层退出主菜单

menu = {
    "北京":{
        "朝阳":{
            "国贸":{
                "CICC":{},
                "HP":{},
                "CCTV":{},
            },
            "望京":{
                "陌陌":{},
                "奔驰":{},

            },
            "三里屯":{
                "优衣库":{},
                "apple":{}
            },
        },
        "昌平":{
            "沙河":{
                "老男孩":{}
            },
            "通天苑":{
                "链家":{},
                "我爱我家":{}
            }
        },
        "海淀":{
            "五道口":{
                "谷歌":{},
                "网易":{},
            },
            "中关村":{
                "youku":{},
                "汽车之家":{},
            }
        },
    },
    "上海":{
        "浦东":{
            "陆家嘴":{
                "高盛":{},
                "摩根":{},
            },
            "外滩":{},

        },
        "闵行":{},
    },
    "山东":{
        "济南":{},
        "青岛":{},
        "德州":{
            "乐陵":{
                "城区":{},
            },
            "平原":{},
        },
    },
}

current_layer = menu #实现动态循环
parent_layer = [] #保存所有父级,最后一个永远是当前层的父级
while True:
    for key  in current_layer :
        print(key)
    choice = input(">>>").strip()
    if len(choice) == 0 :continue
    if choice  in current_layer:
        parent_layer.append(current_layer)#把当前字典陆续追加到列表中,最后一项为父级
        current_layer = current_layer[choice]#进入用户选择的子集
    elif choice == "d":
        if parent_layer:# 为[]时是false,跳出本次,为rueT时执行下一条
            current_layer = parent_layer.pop()
    else :
        print("无数据")


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值