• 三级菜单


    用递归实现:

    menu = { '北京': { '海淀': { '五道口': { 'soho': {}, '网易': {}, 'google': {} }, '中关村': { '爱奇艺': {}, '汽车之家': {}, 'youku': {}, }, '上地': { '百度': {}, }, }, '昌平': { '沙河': { '老男孩': {}, '北航': {}, }, '天通苑': {}, '回龙观': {}, }, '朝阳': {}, '东城': {}, }, '上海': { '闵行': { "人民广场": { '炸鸡店': {} } }, '闸北': { '火车战': { '携程': {} } }, '浦东': {}, }, '山东': {}, } def threeMenu(dic): while 1: for k in dic: print(k) key = input('输入城市(按b返回上一层,按q退出):') if key == 'b' or key == 'q': return key elif key in dic.keys() and dic[key]: ret = threeMenu(dic[key]) if ret == 'q': return ret elif (not dic.get(key)) or (not dic[key]): continue
    menu = {
        '北京': {
            '海淀': {
                '五道口': {
                    'soho': {},
                    '网易': {},
                    'google': {}
                },
                '中关村': {
                    '爱奇艺': {},
                    '汽车之家': {},
                    'youku': {},
                },
                '上地': {
                    '百度': {},
                },
            },
            '昌平': {
                '沙河': {
                    '老男孩': {},
                    '北航': {},
                },
                '天通苑': {},
                '回龙观': {},
            },
            '朝阳': {},
            '东城': {},
        },
        '上海': {
            '闵行': {
                "人民广场": {
                    '炸鸡店': {}
                }
            },
            '闸北': {
                '火车战': {
                    '携程': {}
                }
            },
            '浦东': {},
        },
        '山东': {},
    }
    def threeMenu(dic):
        while 1:
            for k in dic:
                print(k)            # 北京 上海 山东
            key = input('输入城市(按b返回上一层,按q退出):')          # 假设输入 北京
            if key == 'b' or key == 'q': return key
            elif key in dic.keys() and dic[key]:
                ret = threeMenu(dic[key])       # ---------------------------------- 调用
                if ret == 'q': return ret
            elif (not dic.get(key)) or (not dic[key]):
                continue
    
    --------------------------------------------------------------------------------------------------------------------------------------------------
    
    dic = {
            '海淀': {
                '五道口': {
                    'soho': {},
                    '网易': {},
                    'google': {}
                },
                '中关村': {
                    '爱奇艺': {},
                    '汽车之家': {},
                    'youku': {},
                },
                '上地': {
                    '百度': {},
                },
            },
            '昌平': {
                '沙河': {
                    '老男孩': {},
                    '北航': {},
                },
                '天通苑': {},
                '回龙观': {},
            },
            '朝阳': {},
            '东城': {},
        },
    def threeMenu(dic):
        while 1:
            for k in dic:
                print(k)               # 海淀 昌平 朝阳 东城
            key = input('输入城市(按b返回上一层,按q退出):')      # 假设输入 昌平
            if key == 'b' or key == 'q': return key
            elif key in dic.keys() and dic[key]:
                ret = threeMenu(dic[key])       # ---------------------------------- 调用           回来的时候 ret = b
                if ret == 'q': return ret
            elif (not dic.get(key)) or (not dic[key]):
                continue
    
    --------------------------------------------------------------------------------------------------------------------------------------------------
    
    dic =  {
                '沙河': {
                    '老男孩': {},
                    '北航': {},
                },
                '天通苑': {},
                '回龙观': {},
            },
    def threeMenu(dic):
        while 1:
            for k in dic:
                print(k)                # 沙河 天通苑 回龙观
            key = input('输入城市(按b返回上一层,按q退出):')      # 假设输入 回龙观(一直继续)  输入‘b’
            if key == 'b' or key == 'q': return key          # return 'b'
            elif key in dic.keys() and dic[key]:
                ret = threeMenu(dic[key])
                if ret == 'q': return ret
            elif (not dic.get(key)) or (not dic[key]):
                continue
    分步解析

     用堆栈实现:

    menu = {
        '北京': {
            '海淀': {
                '五道口': {
                    'soho': {},
                    '网易': {},
                    'google': {}
                },
                '中关村': {
                    '爱奇艺': {},
                    '汽车之家': {},
                    'youku': {},
                },
                '上地': {
                    '百度': {},
                },
            },
            '昌平': {
                '沙河': {
                    '老男孩': {},
                    '北航': {},
                },
                '天通苑': {},
                '回龙观': {},
            },
            '朝阳': {},
            '东城': {},
        },
        '上海': {
            '闵行': {
                "人民广场": {
                    '炸鸡店': {}
                }
            },
            '闸北': {
                '火车战': {
                    '携程': {}
                }
            },
            '浦东': {},
        },
        '山东': {},
    }
    
    l = [menu]
    while l:
        for k in l[-1]:
            print(k)
        key = input('输入城市(按b返回上一层,按q退出):')
        if key in l[-1].keys() and l[-1][key]:
            l.append(l[-1][key])
        elif key == 'b':
            l.pop()
        elif key == 'q':
            break
        else:
            continue
  • 相关阅读:
    Read-Copy Update Implementation For Non-Cache-Coherent Systems
    10 华电内部文档搜索系统 search04
    10 华电内部文档搜索系统 search05
    lucene4
    10 华电内部文档搜索系统 search01
    01 lucene基础 北风网项目培训 Lucene实践课程 索引
    01 lucene基础 北风网项目培训 Lucene实践课程 系统架构
    01 lucene基础 北风网项目培训 Lucene实践课程 Lucene概述
    第五章 大数据平台与技术 第13讲 NoSQL数据库
    第五章 大数据平台与技术 第12讲 大数据处理平台Spark
  • 原文地址:https://www.cnblogs.com/lpgit/p/9381269.html
Copyright © 2020-2023  润新知