Une fonction récursive est une fonction qui s'appelle elle-même. Elle doit toujours comporter deux parties :
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).