python学习之递归打印菜单

  • A+
所属分类:Blog python Share

菜单打印的装逼方式:递归打印

数据结构

menus = [
    {
        'text': '北京',
        'children': [
            {'text': '朝阳', 'children': []},
            {'text': '昌平', 'children': [
                {'text': '沙河', 'children': []},
                {'text': '回龙观', 'children': []},
            ]},
        ]
    },
    {
        'text': '上海',
        'children': [
            {'text': '宝山', 'children': []},
            {'text': '金山', 'children': []},
        ]
    }
]

实现代码

def search_menu(menus,search=None):
    if search is None:
        for x in menus:
            print(x['text'])
        search = input('请输入相应名称.:').strip()
    for i in menus:
        if search != i['text']:
            continue
        print('查询到%s'%(i['text']))
        if 'children' in i.keys():
            search_menu(i['children'])

search_menu(menus)

小结

递归函数的用处非常多,如果用的好能够节省大量的代码。

但是要记住,递归函数一定要有明确的结束条件,不然就成死循环了!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: