Python函数递归教程

函数递归就是一个

Python函数递归条件

执行一个函数时,就创建一个新的受保护的独立空间(新函数栈)。

函数的局部

递归必须向退出递归的条件逼近,否则就是无限递归了。

当一个函数执行完毕,或者遇到

Python函数递归详解

语法

def def_name(param):
if param == cond:
return
def_name(param2)

说明

我们定义了一个函数 def_name,该函数传递一个

这里的 if 条件就是函数递归的出口,这个非常重要,如果没有这个递归的出口,那么这个递归就会一直执行下去。

案例

Python函数递归


# Python 函数递归结束条件
def print_num(num):
if num > 2:
num = num -1
print_num(num)
print("Num =", num)
print_num(4)

程序运行后,控制台输出如下:

python递归斐波那契 python递归求斐波那契_递归

我们定义了一个 print_num 函数,该函数的参数是

如果当前参数的值不大于 2 的话,那么就打印当前参数的值。这里的 if 条件里面的逻辑就是函数 print_num 自己调用自己,这就构成了递归调用。同时不满足 if 条件的情况,就是递归调用的出口。

Python函数递归

Python函数递归,实现求阶乘


def factorial(n):
result = 0
if n > 0:
result = n * factorial(n - 1)
return result
return 1
result = factorial(5)
print("Result =", result)

程序运行后,控制台输出如下:

python递归斐波那契 python递归求斐波那契_递归调用_02

我们定义了一个 factorial 函数,该函数的参数是一个数字类型的 n,在函数体里面我们使用 if 判断,如果当前参数的值大于 0 的话,我们就再次调用自己,并且参数的值是当前值减一,最后返回计算的结果。

如果当前参数的值不大于 0 的话,那么就直接返回 1。这里的 if 条件里面的逻辑就是函数 factorial 自己调用自己,这就构成了递归调用。同时不满足 if 条件的情况,就是递归调用的出口。

Python函数递归

Python 函数递归,实现斐波那契数列


def fibonacci(num):
if num <= 2:
return 1
else:
return fibonacci(num-1) + fibonacci(num-2)

# 函数递归实现斐波那契数列

result = fibonacci(5)
print("Result =", result)

程序运行后,控制台输出如下:

python递归斐波那契 python递归求斐波那契_递归_03

我们定义了一个 fibonacci 函数,在函数体里面我们使用 if 判断,如果当前参数的值小于等于 1 的话,那么我们就将结果赋值为 1,否则我们就再次调用自己。

Python函数递归总结

函数递归就是一个函数在函数体内又调用了自身,我们称为函数的递归调用。函数递归最重要的就是一定要找到递归调用的出口。