Menu
Coddy logo textTech

Fonctions récursives - Partie 2

Fait partie de la section Logic & Flow du Journey Python de Coddy — leçon 61 sur 78.

Les fonctions récursives ont généralement deux parties :

  1. Cas de base : Définit quand la récursion doit s'arrêter.
  2. Étape récursive : Appelle la fonction elle-même avec une entrée plus petite.

Exemple : Calcul de la factorielle par récursion :

def factorial(n):
    if n == 1:  # Cas de base
        return 1
    return n * factorial(n - 1)  # Appel récursif

print(factorial(5))  # Sortie : 120

Ici, la fonction continue de s'appeler avec n - 1 jusqu'à ce qu'elle atteigne 1, où la récursion s'arrête.

Exemple : Inverser une chaîne de caractères :

def recursive_reverse(s):
	if len(s) <= 1:  # Cas de base : chaîne vide ou à un seul caractère
		return s
	else:
		return recursive_reverse(s[1:]) + s[0]  # Étape récursive

text = "hello"
result = recursive_reverse(text)
print(result)
# Sortie : olleh

Dans cet exemple, la fonction recursive_reverse s'appelle elle-même avec le reste de la chaîne (s[1:]) jusqu'à ce que la chaîne soit vide ou ne contienne qu'un seul caractère. Chaque appel ajoute le premier caractère au résultat de l'appel récursif, inversant ainsi efficacement la chaîne.

challenge icon

Défi

Facile

Écrivez une fonction récursive nommée fibonacci qui prend un entier positif n comme argument et renvoie le n-ième nombre de Fibonacci. La suite de Fibonacci est définie comme suit :

  • fibonacci(1) = 0
  • fibonacci(2) = 1
  • fibonacci(n) = fibonacci(n-1) + fibonacci(n-2) pour n > 2.

Exemple d'entrée :

n = 6

Exemple de sortie :

5

Aide-mémoire

Les fonctions récursives comportent deux parties essentielles :

  1. Cas de base : Définit quand la récursion doit s'arrêter
  2. Étape récursive : Appelle la fonction elle-même avec une entrée plus petite

Exemple de factorielle :

def factorial(n):
    if n == 1:  # Cas de base
        return 1
    return n * factorial(n - 1)  # Appel récursif

print(factorial(5))  # Output: 120

Exemple d'inversion de chaîne :

def recursive_reverse(s):
    if len(s) <= 1:  # Cas de base : chaîne vide ou à un seul caractère
        return s
    else:
        return recursive_reverse(s[1:]) + s[0]  # Étape récursive

text = "hello"
result = recursive_reverse(text)
print(result)  # Output: olleh

Essayez vous-même

def fibonacci(n):
    # Écrire le code ici
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logic & Flow