• 三级菜单


    menu = {
        '北京': {
            '海淀': {
                '五道口': {
                    'soho': {},
                    '网易': {},
                    'google': {}
                },
                '中关村': {
                    '爱奇艺': {},
                    '汽车之家': {},
                    'youku': {},
                },
                '上地': {
                    '百度': {},
                },
            },
            '昌平': {
                '沙河': {
                    '老男孩': {},
                    '北航': {},
                },
                '天通苑': {},
                '回龙观': {},
            },
            '朝阳': {},
            '东城': {},
        },
        '上海': {
            '闵行': {
                "人民广场": {
                    '炸鸡店': {}
                }
            },
            '闸北': {
                '火车战': {
                    '携程': {}
                }
            },
            '浦东': {},
        },
        '山东': {},
    }
    
    def threeLM(dic):
         while True:
            for k in dic:print(k)
            key = input('input>>').strip()
            if key == 'b' or key == 'q':return key # 输入b会return b本身,直接结束当前循环,返回上一级,不断输入b,直至结束
            elif key in dic.keys() and dic[key]: # 判断key在列表中,并且有内容不为空,则进行递归执行下一步
                ret = threeLM(dic[key])
                if ret == 'q': return 'q' #如果输入q,则直接退出
    
    
    threeLM(menu)
    -------------------------------------------------------------------------------------------------------------
    #堆栈实现
    l = [menu]
    while l: # while l 目的在于防止b返回上一级到顶部时异常
    for key in l[-1]:
    print(key)
    k = input('input>>').strip() # 北京
    if k in l[-1].keys() and l[-1][k]: #判断是否有值与下一级非空
    l.append(l[-1][k])
    elif k == 'b':l.pop() #删除当前菜单,返回上一级
    elif k == 'q':break
     
  • 相关阅读:
    OI无关 透彻随笔
    置顶帖(传送门)/to 学弟 一个菜鸡的故事
    洛谷P1494 小Z的袜子 莫队
    关于 对拍 的一些认识
    关于 带权二分/wqs二分 的一些认识
    关于 KDtree 的一些认识
    关于 网络流 的一些认识
    省选 考前模板
    关于 多项式 的一些认识/多项式入门
    小球与盒子 的奇妙关系
  • 原文地址:https://www.cnblogs.com/wzc27229/p/11116258.html
Copyright © 2020-2023  润新知