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
