zoukankan      html  css  js  c++  java
  • 字典小实战-写三级菜单

    该方法可实现多级菜单,目前我们先做出个三级菜单

    本次实现的案例主题为【附近商家】

    大家应该都用过美团中的切换城市按钮,切换不同城市中的不同区县,则展示该区县附近的美食

    本次实现内容为:省地:北京、河北

                                城市:北京[北京]
                                           河北[保定、石家庄]

                                区县:北京[朝阳、昌平、海淀]

                                           保定[清苑、雄安]

                                美食:昌平[张亮麻辣烫、九宫格、兰州拉面]

                                          清苑[水煮鱼、蒸汽牛蛙、肉夹馍]

    ----------------------------------------------------------------------------------------------------------------------------------代码需求分割线

    #定义三级城市的字典
    date = {                                                                  
        "北京":{
            "北京":{
                "朝阳":{},
                "昌平":{"张亮麻辣烫","九宫格","兰州拉面"},
                "海淀":{}
            }
        },
        "河北":{
            "保定":{
                "清苑":{"水煮鱼","蒸汽牛蛙","肉夹馍"},
                "雄安":{}
    },
            "石家庄":{}
        }
    }
     
     
    while True:                    #保证循环展示省
        for i in date:                #把省放到i里输出出来
            print(i)                    #输出
        choice = input("你要进入的省:")         #让用户输入要进入哪个省
        if choice in date:                            #如果用户输入的省在定义好的date表里则执行下方代码
            while True:                             #保证循环展示省下的市
                for i2 in date[choice]:              #把市放到i2里展示出来
                     print(i2)                          #输出市
                choice2 = input("请输入进入的城市:")           输入进入哪个市            /下面代码大体与上方一致,不做详细注释了
                if choice2 in date[choice]:
                    while True:
                        for i3 in date[choice][choice2]:
                            print(i3)
                        choice3 = input("请输入进入的区县:")
                        if choice3 in date[choice][choice2]:
                            while True:
                                for i4 in date[choice][choice2][choice3]:
                                    print(i4)
                                break          #最终展示出最后一级节点,下方没有节点了则退出最后一级循环
                        break             #当退出最后一级节点后,会跑到最后一个循环的父级循环,则提前把父级循环给break了
                break                   #与上个注释同样道理
        break                       #与上个注释同样道理
     
     
     
    这样基础的三级节点就实现了,不过这个只能保证进入到哪个节点,不能返回上一级也有很多容错没有加,这些功能后期还写的话,会优化上去的。
     
    谢谢观看
  • 相关阅读:
    浅析linux 下的/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc(转)
    【引用】如何关闭SELinux
    typedef 用法(转)
    【引用】让source insight在窗口标题栏上显示文件全路径
    c语言 typedef(转)
    ip分片 tcp分段(转)
    linux 命令 pushd popd cd 区别
    linux xargs
    JS实现简单hashtable
    Page.ClientScript.RegisterClientScriptBlock 与RegisterClientScriptBlock
  • 原文地址:https://www.cnblogs.com/ztcbug/p/12168281.html
Copyright © 2011-2022 走看看