• 第二十八节,递归


    递归的表现形式(此列不是递归只是说明递归的表现形式)
    #递归的表现形式(此列不是递归只是说明递归的表现形式)
    def f1():
        return "递归的表现形式"    #f1函数里的功能,返回"递归的表现形式"字符串
    def f2():
        r = f1()    #执行f1函数
        return r    #返回f1函数的结果
    def f3():
        r = f2()    #执行f2函数
        return r    #返回f2函数的结果
    def f4():
        r = f3()    #执行f3函数
        return r    #返回f3函数的结果
    
    adc = f4()  #执行f4函数
    print(adc)
    #打印出 递归的表现形式
    #递归就是嵌套式请求,向第一层请求,程序会自动一层一层的将请求信息传递到底层,然后将结果在一层一层的传递回来

    初识递归
    程序本身自己调用自己称之为递归,类似于俄罗斯套娃,体现在代码中:用户执行最外(N)层函数,最外侧调用N-1层函数,N-1层函数调用N-2层函数...

    递归最简单原理
    程序本身自己调用自己称之为递归,类似于俄罗斯套娃,体现在代码中:用户执行函数,而函数里又在执行函数本身,相当于写了一个死循环函数,一般都需要用一个判断来决定递归深度
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    def f(a):   #自定义函数
        f(a)    #再次执行本身函数
    f(1) #执行函数,触发函数循环



    用递归写一个斐波那契数列,0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987 
    斐波那契数列每前两位相加等于第3位

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    #用递归写一个斐波那契数列
    def f1(i, a, b):    #自定义函数接收参数传值
        print(a)    #打印每次递归的a
        if i == 5:  #判断每次递归的i是否等于5
            return  #如果i等于5就return返回,返回没写返回值就什么都不返回,只是结束函数代码块终止递归
        c = a + b   #将接收到的a加以b重新赋值给c
        r = f1(i + 1, b, c) #将接收到的i加以1,接收到的b,新赋值给c,当做参数在次执行传入函数本身进行递归
    f1(1, 0, 1) #调用执行函数



    只取一个递归次数的斐波那契数,也就是取递归某一次的斐波那契数
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    #只取一个递归次数的斐波那契数,也就是取递归某一次的斐波那契数
    def f1(i, a, b):  #自定义函数接收参数传值
        if i == 5:   #判断每次递归的i是否等于5
            return a   #如果i等于5就return返回a,结束函数代码块终止递归
        c = a + b       #将接收到的a加以b重新赋值给c
        r = f1(i + 1, b, c) #将接收到的i加以1,接收到的b,新赋值给c,当做参数在次执行传入函数本身进行递归
        return r   #接收满足条件后返回的a并且递归方式返回给上一次执行函数
    sf = f1(1, 0, 1) #调用执行函数
    print(sf)
    #打印出结果  3
    
    

     
     
  • 相关阅读:
    AI boxfilter
    AI AdaBoost算法
    AI Haar特征
    15.VUE学习之-表单中使用key唯一令牌解决表单值混乱问题
    14.VUE学习之-v-if v-else-if语法在网站注册中的实际应用讲解
    13.VUE学习之控制行内样式
    12.2 VUE学习之-if判断,实践加减input里的值
    12.1.VUE学习之-循环li,if判断示例讲解class中应用表达式
    10.VUE学习之使用lodash库减少watch对后台请求的压力
    09.VUE学习之watch监听属性变化实现类百度搜索栏功能ajax异步请求数据,返回字符串
  • 原文地址:https://www.cnblogs.com/adc8868/p/5712648.html
Copyright © 2020-2023  润新知