z天赐

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

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

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

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

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

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

                                       保定[清苑、雄安]

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

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

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

 

#定义三级城市的字典
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                       #与上个注释同样道理
 
 
 
这样基础的三级节点就实现了,不过这个只能保证进入到哪个节点,不能返回上一级也有很多容错没有加,这些功能后期还写的话,会优化上去的。
 
谢谢观看
posted on 2020-01-09 15:18  z天赐  阅读(169)  评论(0编辑  收藏  举报