fonctions récursives sont des fonctions qui s'appellent eux-mêmes dans leur définition . Parce qu'une fonction récursive appelle sur lui-même pour accomplir sa tâche , il peut rendre les emplois qui contiennent un travail identique sur plusieurs objets de données plus facile à conceptualiser , planifier et écrire . Cependant , la récurrence peut être exigeant en ressources système ou finissent par surcharger le système si la récursivité ne s'arrête pas. Ecriture de fonctions récursives en Python est similaire à l'utilisation des fonctions récursives dans d'autres langages de programmation , avec les mêmes avantages et les inconvénients . Recursion fonctions récursives exemples appellent eux-mêmes dans le cadre de leur définition . Par exemple: >>> facteur def (x) : . . . facteur (x) Cette fonction continuera à s'appeler lui-même jusqu'à ce que le système ne peut plus contenir la quantité de la fonction communications ( appels de fonction résident dans la mémoire comme toutes les autres données). Cependant, ce qui simplifie la façon dont une des fonctions récursives travaille conceptuel : Une fonction (facteur ) appelle lui-même (facteur (x) ) dans le cadre de sa définition scénarios de référence . Une fonction récursive doit avoir ce qu'on pourrait appeler des «cas de base », ou des conditions qui racontent la fonction d'arrêter sa récurrence . Cela pourrait être n'importe quelle condition que la fonction aurait pu satisfaire dans le cadre de son fonctionnement. Comme un exemple classique , la fonction factorielle trouve la factorielle d'un nombre n ( n! , Ou n * n-1 * n-2 ... 0) . Donc, la factorielle de 3 aurait calculer à 3 * 2 * 1 = 6. Un programmeur peut utiliser le numéro 0 comme hypothèse de base de cette fonction : >>> si x == 0 : . . . retourner 1 récursivité Si la fonction factorielle a maintenant un scénario de base ( x == 0) , alors la récursivité s'arrête à cette condition. Ainsi, il ne serait qu'une question d'utiliser la récursivité pour effectuer l'opération factorielle : >>> autre : . . . return x * facteur (x-1 ) Si x n'est pas égal à 0, alors la récursion va commencer /continuer. L'instruction return appellera «facteur» et d'attendre. Chaque nouvel appel de fonction en fera de même , d'appel et attendre jusqu'à ce que le dernier appel de fonction ( lorsque x == 0 ) renvoie 1. Ensuite, chaque appel précédent terminer l'instruction return (multiplier la valeur retournée par «facteur» par x ) jusqu'à ce que la factorielle est retourné. Python récursivité récursivité toute langue peut se retrouver dans une boucle infinie : C'est une structure récursive qui ne finit jamais jusqu'à ce que le système arrête à cause du manque de ressources . Python haltes Cette récursivité " infini " à 1.000 appels ( si une fonction peut s'appeler elle-même dans une chaîne récursif 1000 par exemple , bien avant Python arrête le processus ) . Le programmeur peut modifier cette valeur par le biais des bibliothèques système , comme dans cet exemple : >>> import sys >>> sys.setrecursionlimit (2000) Toutefois, à ce point les programmeurs pourraient se demander si la récursivité est la meilleure solution pour le problème.
|