Qu'est-ce que la récursivité en Python et comment l'utiliser ?
La récursivité en Python est une technique de programmation où une fonction s'appelle elle-même pour résoudre un problème, en décomposant la tâche en sous-problèmes similaires de taille réduite.
La récursivité est très utile pour résoudre des problèmes dont la structure est intrinsèquement répétitive ou hiérarchique.
Pour utiliser la récursivité, une fonction récursive doit avoir deux parties :
-
Un cas de base : Une condition d'arrêt qui termine les appels récursifs.
-
Un appel récursif : Un appel à la fonction elle-même avec un sous-ensemble du problème initial.
Prenons comme exemple le calcul de la factorielle d'un nombre :
def factorielle(n):
# Cas de base
if n == 0:
return 1
# Appel récursif
else:
return n * factorielle(n - 1)
Une autre application courante de la récursion est la suite de Fibonacci :
def fibonacci(n):
# Cas de base
if n == 0:
return 0
elif n == 1:
return 1
# Appel récursif
else:
return fibonacci(n - 1) + fibonacci(n - 2)
La récursivité peut être moins performante que les approches itératives, car elle peut entraîner de nombreuses opérations répétées et une consommation importante de mémoire. Cependant, elle peut simplifier la résolution de certains problèmes complexes et améliorer la lisibilité du code.