python递归函数

高洛峰
Libérer: 2016-11-16 10:51:17
original
1567 Les gens l'ont consulté

函数就像一个盒子,将相关的一些功能打包成一个函数,以供调用。函数内部可以调用其他函数,也可以调用这个函数自身。
如果一个函数在内部调用函数自身,那么这个就是递归函数。
我们举一个简单的例子。
数学中我们知道100的阶乘,100!=1009998...321.
分解开来,100!=10099!,99!=9998!,98!=98*97!...
那么我们定义一个函数来计算阶乘:

def fact(n):
    return n*fact(n-1)
Copier après la connexion

上面这个函数看起来是一个数字不断地跟与它小1的数相乘,却没有停止的时候。所以我们必须对上述函数进行改造,让它能在n=1的时候,计算完就停下来。

def fact(n):
    if n==0:
        return 1
    else:
        return n*fact(n-1)
Copier après la connexion

递归函数也可以用循环的方式实现。但是递归函数逻辑较为简单。但是在使用递归函数的时候,要注意防止递归函数调用过多导致栈溢出。


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal