返回顶部

Python 入门之 递归

1、递归

递:一直传参

归:返回

(1)不断调用自己本身(无效递归 -- 死递归)

    def func():
        print(1)
        func()
    func()

(2)有明确的终止条件

递归的最大深度(层次) 官方说明1000 实际测试998/997

递归的应用场景:
english = [["1",["a","b","c","d","e",["f",["g","h",["j","k"]]]]],
        ["2",["l"],],
        ["3",["m"]]]

for i in english :
    if type(i) == list:
        for em in i:
            if type(em) == list:
                for j in em:

在列表中嵌套列表,循环输出列表中的每个元素时,多层for循环嵌套,不但麻烦,而且如果在列表中添加新元素时,就得重新编写代码。
此时,可用递归的方法解决上述问题。
如下: 
def func(m):
    for i in m:
        if type(i) == list:
            func(i)
        else:
            print(i)
func(english)
# 用递归实现斐波那契数
def func(num):
    if num == 0 or num == 1:
        return 1
    return func(num-1) + func(num-2)

for i in range(8):
    print(func(i))
posted @ 2019-09-03 09:58  永亮  阅读(367)  评论(0编辑  收藏  举报