Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Récursivité | Récursivité et Fonctions Lambda
Tutoriel sur les Fonctions Python
Section 5. Chapitre 1
single

single

Récursivité

Glissez pour afficher le menu

Note
Définition

Une fonction récursive est une fonction qui s'appelle elle-même pour résoudre un problème en le divisant en parties plus petites et plus simples.

Les éléments clés de la récursion sont :

  • Cas de base : la condition qui arrête la récursion ;
  • Cas récursif : la partie où la fonction s'appelle elle-même avec une entrée plus simple.

Pourquoi utiliser la récursion ?

Certains problèmes peuvent être naturellement exprimés en termes de sous-problèmes plus petits. La récursion offre une manière claire et élégante de les résoudre en permettant à une fonction de s'appeler elle-même pour traiter les cas plus simples. Elle est couramment utilisée pour des tâches telles que le traitement d'arbres, l'exploration de chemins ou la décomposition de structures (par exemple, listes, chaînes de caractères).

Un exemple simple

123456
def print_message(message, times): if times > 0: # Base case: stop when times is 0 print(message) print_message(message, times - 1) # Recursive case print_message("Hello, Recursion!", 3)

Procéder étape par étape pour comprendre le fonctionnement :

  1. times = 3 → condition vraie, affichage du message, appel de print_message(message, 2) ;
  2. times = 2 → condition vraie, affichage du message, appel de print_message(message, 1) ;
  3. times = 1 → condition vraie, affichage du message, appel de print_message(message, 0) ;
  4. times = 0 → condition fausse, la récursivité s'arrête.

Résultat : le message est affiché trois fois.

La pile d'appels

Chaque fois que la fonction s'appelle elle-même, elle ajoute une nouvelle trame à la pile d'appels — une structure mémoire qui garde la trace des appels de fonctions actifs. Une fois le cas de base atteint, chaque appel précédent se termine un par un dans l'ordre inverse.

Note
Remarque

Toute fonction récursive doit comporter un cas de base. Sans cela, la fonction s'appellera indéfiniment et provoquera une RecursionError.

Tâche

Glissez pour commencer à coder

Implémenter une fonction récursive list_sum qui calcule la somme de tous les éléments d'une liste.

  1. Si la liste numbers est vide, retourner 0 — il s'agit du cas de base ;
  2. Sinon, retourner le premier élément ajouté au résultat d'un appel récursif avec le reste de la liste.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 1
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

some-alt