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 :

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).