Au programme de ce chapitre
- I. Définir une fonction récursive
- II. La pile d'appels
- III. Efficacité : le problème de la récursion multiple
- Savoir-faire
- Exercices types corrigés
- Teste-toi — vrai ou faux ?
- Pièges fréquents et astuces
- À retenir
La définition à retenir
Un exemple corrigé
python3 :
>>> def factorielle(n):
... if n == 0:
... return 1
... return n * factorielle(n - 1)
...
>>> factorielle(6)
720
Le cas de base est n == 0, qui renvoie 1 sans appel supplémentaire. Le cas récursif ramène le calcul de factorielle(6) à celui de factorielle(5), puis factorielle(4), et ainsi de suite jusqu'à atteindre 0 : c'est bien une suite finie d'appels, garantie par la décroissance stricte de n.Les erreurs fréquentes à éviter
RecursionError dès que la pile d'appels dépasse une profondeur maximale, fixée par défaut à 1000 (valeur renvoyée par sys.getrecursionlimit()).L'astuce du prof
Exercices corrigés
Cherche d'abord seul, puis ouvre la correction.
Exercice 1
Voir la correction
def f(n): return 1 if n==0 else n*f(n-1).Exercice 2

