zoukankan      html  css  js  c++  java
  • Python 递归

    递归

    递归是基于函数,函数构成的循环,函数包含了对自身的调用,称为递归。

    • 递归类似于循环,循环解决的问题一般都是线性的,递归不单可以解决线性问题也可以解决非线性问题。
    • 递归优于循环,递归占用的内存比普通循环更多,因此递归的效率比普通循环要更高一些。

    注意事项:递归在使用时要首先注意的是递归结束的标志,如果没有结束标志,系统默认自带的递归上限为1000,超出会报错。

    简单实例:

    mylist = [1,2,3,4,5]
    
    def mysum(opj): #递归函数
          if not opj:
                return 0
        else:
                return opj[0] + mysum(opj[1:])
    
    res = mysum(mylist)
    #实际运行过程
    #retu obj[0] + mysum(obj[1:]) 
    #         1  + mysum([2,3,4,5])
    #                     2  + mysum([3,4,5])
    #                                   3  + mysum([4,5])
    #                                                  4  + mysum([5])
    #                                                                5  + mysum(obj[])
    #                                                                                      0       
    
    print(res)
    

    递归解决非线性问题

    实例:

    mylist = [1,2,[3,4,[5],6],7]
    
    _sum = 0
    def mysum(opj):
        global _sum#声明了_sum为全局的
        for var in opj:
            if not isinstance(var,list):# isinstance(变量,类型):判断一个变量是否属于某种类型 
                _sum += var
            else:
                mysum(var)
        return
    #递归的终止:for循环终止
    mysum(mylist)
    print(_sum)
    
  • 相关阅读:
    Python第二
    Python第一讲以及计算机基础
    MySQL第五讲
    MySQL第四讲
    MySQL第三讲
    MySQL第一讲概论
    MySQL日常笔记第二讲
    Linux修改用户组
    XAMPP中proftpd的简明配置方法
    解决php configure: error: Cannot find ldap libraries in /usr/lib.错误
  • 原文地址:https://www.cnblogs.com/spmt/p/10610656.html
Copyright © 2011-2022 走看看