zoukankan      html  css  js  c++  java
  • 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))
    
  • 相关阅读:
    java 多线程4: java线程的优先级
    Thread.currentThread().getName() ,对象实例.getName() 和 this.getName()区别
    go http
    go redis
    go tcp
    go 单元测试
    go 定时器
    go channel
    go goroutine
    go 错误处理
  • 原文地址:https://www.cnblogs.com/caiyongliang/p/11451287.html
Copyright © 2011-2022 走看看