zoukankan      html  css  js  c++  java
  • 三级菜单优化

    三级菜单优化

    #_author:Mr. lai
    #date:2019/10/28
    #three menu
    #1.可以一层一层进入到所有层
    #2.可以在每一层返回上一层
    #3.可以在任意层退出主菜单
    menu={
    '北京':{
    '朝阳':{
    '国贸':{
    'CICC':{},
    'HP':{},
    '渣打银行':{},
    'CCTV':{},
    },
    '望京':{
    'MoMo':{},
    '奔驰':{},
    '360':{}
    },
    '三里屯':{
    '优衣库':{},
    '苹果':{}

    },
    },
    '昌平':{
    '沙河':{
    '老男孩':{},
    '阿泰包子':{}
    },
    '天通苑':{
    '链家':{},
    '我爱我家':{}
    },
    '回龙观':{}
    },
    '海淀':{
    '五道口':{
    '谷歌':{},
    '网易':{},
    '搜狐':{},
    '搜狗':{},
    '快手':{},
    '清华':{},
    '北大':{},
    '民大':{},
    '地址科技大学':{},
    },
    '中关村':{
    '优酷':{},
    '爱奇艺':{},
    '汽车之家':{},
    '新东方':{},
    '腾讯':{},

    }
    }

    },
    '上海':{
    '浦东':{
    '陆家嘴':{
    'CICC':{},
    '摩根':{},
    '高盛':{},
    },
    '外滩':{},

    },
    '闵行':{},
    '静安':{},
    },
    '广州':{},
    '山东':{
    '济南':{

    },
    '德州':{
    '乐凌':{
    '丁务镇':{}
    },
    '平原':{},

    },
    '青岛':{},
    },
    }
    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)#在进入下一层之前,把当前层(也就是下一层的父级)追加到列表中,
    #下一次循环,当用户选择b的时候,就可以直接取列表的最后一个值出来
    current_layer=current_layer[choice]#进入子层
    elif choice=='b':
    if parent_layer:
    current_layer=parent_layer.pop()#取出列表的最后一个值,因为它就是当前层父级
    else:
    print('no item')
    Output:

    北京
    上海
    广州
    山东
    >>:北京
    朝阳
    昌平
    海淀
    >>:昌平
    沙河
    天通苑
    回龙观
    >>:b
    朝阳
    昌平
    海淀
    >>:朝阳
    国贸
    望京
    三里屯
    >>:望京
    MoMo
    奔驰
    360
    >>



  • 相关阅读:
    递归神经网络 RNN 原理(上)
    递归神经网络
    队列-Python 实现
    Tableau 我常用函数整理
    代码重构(OOP)-小栗子(PyQt5)
    Python基础
    Excel 数据显示到网页
    采坑
    Python基础
    JavaScript一些对象。
  • 原文地址:https://www.cnblogs.com/startl/p/11755477.html
Copyright © 2011-2022 走看看