Outils pour utilisateurs

Outils du site


glossaires:python:recursivite

Récursivité

def fonction(parametre): ... if condition_arret: return valeur_de_base ... else: return ...

Une fonction récursive est une fonction qui s'appelle elle-même. Elle doit toujours comporter deux parties :

  • une condition d'arrêt (aussi appelée cas de base), qui renvoie directement une valeur sans réappeler la fonction, afin d'éviter que la fonction ne s'appelle indéfiniment ;
  • un cas récursif, qui réappelle la fonction avec un paramètre qui se rapproche à chaque fois de la condition d'arrêt.
def factorielle(n):
    """
    Objectif :
    Calcule la factorielle d'un nombre entier de façon récursive.
    Entrée :
    n : int : le nombre entier dont on veut calculer la factorielle
    Sortie :
    resultat : int : la factorielle de n (n! = n * (n-1) * ... * 1)
    """
    if n == 0:  #condition d'arrêt : 0! vaut 1 par définition
        return 1
    else:
        resultat = n * factorielle(n - 1)  #cas récursif : appel de la fonction avec n-1
        return resultat
 
print(factorielle(4))  #affiche 24 (4*3*2*1)

Attention : sans condition d'arrêt correctement définie, une fonction récursive s'appelle indéfiniment et provoque une erreur (RecursionError).

glossaires/python/recursivite.txt · Dernière modification : de loutrel