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

Glissez pour afficher le menu

book
Récursivité

Note
Définition

Récursion est une technique de programmation où une fonction s'appelle elle-même pour résoudre un problème en le divisant en parties plus petites. Elle est particulièrement utile pour les problèmes à structure répétitive ou comportant des sous-problèmes naturels.

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 un moyen clair et élégant 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).

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

Examinons étape par étape le fonctionnement de ce programme récursif :

  1. Vérification de la condition : si times > 0, la fonction continue. Dans ce cas, times = 3, donc la condition est vraie ;

  2. Affichage du message : la fonction affiche "Hello, Recursion!" ;

  3. Appel récursif : la fonction s'appelle elle-même avec times - 1 ;

  4. Répétition : ce processus se poursuit jusqu'à ce que times soit égal à 0 ;

  5. Arrêt : lorsque la condition times > 0 n'est plus vraie, la récursion s'arrête et le programme se termine.

Résultat : le message "Hello, Recursion!" est affiché trois fois.

Comprendre le déroulement :

À chaque appel récursif, la fonction ajoute une nouvelle entrée à la pile d'appels (une structure mémoire qui garde la trace des appels de fonctions actifs). La fonction continue de s'appeler avec une valeur de times décroissante. Une fois le cas de base atteint (times == 0), elle s'arrête. Ensuite, chaque appel précédent se termine un par un dans l'ordre inverse. Ce comportement de retour en arrière est essentiel au fonctionnement de la récursion.

Tâche

Swipe to start coding

Étant donné une chaîne représentant un numéro de téléphone, qui peut contenir des espaces, des tirets, des parenthèses ou d'autres caractères non numériques. L'objectif est d'extraire uniquement les chiffres en utilisant la récursivité.

  1. Si la chaîne d'entrée number est vide, retourner une chaîne vide.
  2. Vérifier si le premier caractère de la chaîne number est un chiffre en utilisant la méthode isdigit() dans une condition if.
  3. S'il s'agit d'un chiffre, le concaténer avec le résultat d'un appel récursif à format_phone_number, en passant la sous-chaîne à partir du deuxième caractère.
  4. S'il ne s'agit pas d'un chiffre, effectuer un appel récursif à format_phone_number, en sautant le premier caractère.

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

Demandez à l'IA

expand
ChatGPT

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

book
Récursivité

Note
Définition

Récursion est une technique de programmation où une fonction s'appelle elle-même pour résoudre un problème en le divisant en parties plus petites. Elle est particulièrement utile pour les problèmes à structure répétitive ou comportant des sous-problèmes naturels.

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 un moyen clair et élégant 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).

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

Examinons étape par étape le fonctionnement de ce programme récursif :

  1. Vérification de la condition : si times > 0, la fonction continue. Dans ce cas, times = 3, donc la condition est vraie ;

  2. Affichage du message : la fonction affiche "Hello, Recursion!" ;

  3. Appel récursif : la fonction s'appelle elle-même avec times - 1 ;

  4. Répétition : ce processus se poursuit jusqu'à ce que times soit égal à 0 ;

  5. Arrêt : lorsque la condition times > 0 n'est plus vraie, la récursion s'arrête et le programme se termine.

Résultat : le message "Hello, Recursion!" est affiché trois fois.

Comprendre le déroulement :

À chaque appel récursif, la fonction ajoute une nouvelle entrée à la pile d'appels (une structure mémoire qui garde la trace des appels de fonctions actifs). La fonction continue de s'appeler avec une valeur de times décroissante. Une fois le cas de base atteint (times == 0), elle s'arrête. Ensuite, chaque appel précédent se termine un par un dans l'ordre inverse. Ce comportement de retour en arrière est essentiel au fonctionnement de la récursion.

Tâche

Swipe to start coding

Étant donné une chaîne représentant un numéro de téléphone, qui peut contenir des espaces, des tirets, des parenthèses ou d'autres caractères non numériques. L'objectif est d'extraire uniquement les chiffres en utilisant la récursivité.

  1. Si la chaîne d'entrée number est vide, retourner une chaîne vide.
  2. Vérifier si le premier caractère de la chaîne number est un chiffre en utilisant la méthode isdigit() dans une condition if.
  3. S'il s'agit d'un chiffre, le concaténer avec le résultat d'un appel récursif à format_phone_number, en passant la sous-chaîne à partir du deuxième caractère.
  4. S'il ne s'agit pas d'un chiffre, effectuer un appel récursif à format_phone_number, en sautant le premier caractère.

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
Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Nous sommes désolés de vous informer que quelque chose s'est mal passé. Qu'est-il arrivé ?
some-alt