20220811-day1501接下来看看递归函数

前面函数其实已经讲完了,这里的递归函数,以及后面的迭代器、装饰器都仅仅是特殊函数而已

#_author: Administrator
#_date: 2020/5/19

#前面其实函数已经讲解完了,这里的高阶函数以及后面讲的迭代器、装饰器都仅仅是函数的特殊应用而已
#看个例子,计算阶乘
#如: 5!=5x4x3x2x1
def fat(n):
    ret=1
    for i in range(1,n+1): #这里要明白range的取值
        ret=ret*i
    return ret
print(fat(5))
#引出个问题,思路有点复杂,下面用递归函数实现
#@地柜的特征:但凡递归能做的,循环都能做;递归很多时候效率是很低的,不推荐使用。
def recursive_fun(n):
    if n==1:
        return 1
    return n*recursive_fun(n-1)
print(recursive_fun(5)) #一定要好好理解
#总结递归函数:1、内部要自己调用自己;2、注意结束条件;

#再来个例子:斐波那契数列
#0 1 1 2 3 5 8 13 21 34 55
#想实现效果,从斐波拉契数列中取数
def fib(n):
    
    bef=0
    aft=1
    if n <= 1:
        return n
    return fib(n-1)+fib(n-2)
print(fib(8))

 

posted @ 2022-08-11 23:57  静风-fish  阅读(15)  评论(0编辑  收藏  举报