Python学习 递归函数

时间:2022-05-08 03:37:42

递归函数

在函数内部,可以调用其他函数,如果一个函数在内部调用自身本身,这个函数就是递归函数。

下面我们以几个例子来说明递归函数的用法

1.阶乘

我们计算n!=1*2*3*4*(n-1)*n,用fact(n)实现如下

def fact(n):
if n==1:
return 1
else:
return n*fact(n-1)

调用fact(n)后,实现如下

>>> fact(3)
6
>>> fact(5)120

再举一个斐波拉契数列的例子,斐波拉契数列是这样子的:0,1,1,2,3,5,8,13,21....即每个数都是前2个数之和,用fib(n)函数实现如下:

注意:print不同的缩进值能得到完全不同的结果!!


>>> def fib(n):
a,b=0,1
count=1
while count<n:
a,b=b,a+b
count=count+1
<span style="color:#FF0000;">print (a)</span>


>>> fib(8)
13

>>> def fib(n):
a,b=0,1
count=1
while count<n:
a,b=b,a+b
count=count+1
<span style="color:#FF0000;">print (a)</span>


>>> fib(8)
1
1
2
3
5
8
13

注释如下:

a,b=b,a+b 相当于:

temp=b #先保存b的原值
b=a+b #赋b新值
a=temp #将b的原值赋予a