Fonctions récursives python

<

Contenu

article data-type="article">
Recursion en Python offre les mêmes coûts et avantages comme il le fait dans d`autres langages de programmation

Les fonctions récursives sont des fonctions qui se disent dans leur définition. Parce qu`une fonction récursive appelle sur lui-même pour accomplir sa tâche, il peut faire des emplois qui contiennent un travail identique sur les objets plus facilement des données multiples à conceptualiser, planifier et écrire. Cependant, la récursivité peut être système intensif ou finissent par surcharger le système si la récursivité ne cesse pas. Ecriture des 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 pièges.

Recursion Sample

  • Les fonctions récursives appellent eux-mêmes dans le cadre de leur définition. Par exemple:

    facteur de def (x):

    . . . facteur (x)

    Cette fonction continuera à appeler lui-même jusqu`à ce que le système ne peut plus contenir la quantité d`appels de fonction effectués (appels de fonctions résident dans la mémoire comme tous les autres données). Toutefois, cela simplifie la façon dont une des fonctions récursives fonctionne sur le plan conceptuel: Une fonction (facteur) appelle lui-même (le facteur (x)) dans le cadre de sa définition.

Cas de base




  • Une fonction récursive doit avoir ce que l`on pourrait appeler les «cas de base», ou des conditions qui indiquent la fonction d`arrêter sa récursivité. Cela pourrait être une condition que la fonction pourrait avoir satisfait 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 calculerait à 3 2 1 = 6. Un programmeur peut utiliser le numéro 0 comme le cas de base de cette fonction:

    si x == 0:

    . . . retour 1

Recursion

  • Si la fonction factorielle dispose désormais d`un cas de base (x == 0), puis la récursivité s`arrêtera à cette condition. Donc, ce ne serait qu`une question d`utiliser la récursivité pour effectuer l`opération factorielle:

    autre:

    . . . return x * facteur (x-1)

    Si x ne correspond pas à 0, la récursion va commencer / continuer. L`instruction return appellera «facteur» et attendre. Chaque nouvel appel de fonction fera la même chose, appeler et attendre jusqu`à ce que le dernier appel de fonction (lorsque x == 0) renvoie 1. Ensuite, chaque appel précédent se terminera l`instruction de retour (multiplier la valeur retournée par «facteur» par x) jusqu`à ce que la factorielle est retourné.

Python Recursion

  • Recursion dans toutes les langues peuvent se retrouver dans une boucle infinie: C`est une structure récursive qui ne se termine jamais jusqu`à ce que le système arrête en raison du manque de ressources. Python arrête cette récursivité "infini" à 1000 appels (donc une fonction peut appeler lui-même dans une instance 1000-longue chaîne récursive avant Python arrête le processus). Le programmeur peut modifier cette valeur à travers les bibliothèques du système, comme dans cet exemple:

    import sys

    sys.setrecursionlimit (2000)

    Cependant, à ce point les programmeurs pourraient se demander si la récursivité est la meilleure solution pour le problème.

AUTRES

Comment couper en ms sql фото

Comment couper en ms sql

La plupart des langages de programmation ont une fonction de compensation, ce qui supprime tous les espaces vides avant…

Fonctions excel vs sub фото

Fonctions excel vs sub

Microsoft Excel 2010, ainsi que la plupart des versions du logiciel, est livré avec un langage de programmation inclus…