Récursivité de Fonction en Python
Récursion : technique de programmation où une fonction s'appelle elle-même pour résoudre un problème en parties plus petites. 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 : condition qui arrête la récursion ;
- Cas récursif : 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 solution claire et élégante 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).
1234567def 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)
Procéder étape par étape pour comprendre le fonctionnement de ce programme récursif :
- Vérification de la condition : si
times > 0, la fonction continue. Dans ce cas,times = 3, donc la condition est vraie ; - Affichage du message : la fonction affiche
"Hello, Recursion!"; - Appel récursif : la fonction s'appelle elle-même avec
times - 1; - Répétition : ce processus se poursuit jusqu'à ce que
timessoit égal à 0 ; - Arrêt : lorsque la condition
times > 0n'est plus vraie, la récursion s'arrête et le programme se termine.
Résultat : Le message "Hello, Recursion!" est affiché trois fois.
Compréhension du déroulement :
À chaque appel récursif, la fonction ajoute une nouvelle trame à 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.
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é.
- Si la chaîne d'entrée
numberest vide, retourner une chaîne vide. - Vérifier si le premier caractère de la chaîne
numberest un chiffre en utilisant la méthodeisdigit()dans une conditionif. - 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. - S'il ne s'agit pas d'un chiffre, effectuer un appel récursif à
format_phone_number, en sautant le premier caractère.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Génial!
Completion taux amélioré à 6.67
Récursivité de Fonction en Python
Glissez pour afficher le menu
Récursion : technique de programmation où une fonction s'appelle elle-même pour résoudre un problème en parties plus petites. 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 : condition qui arrête la récursion ;
- Cas récursif : 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 solution claire et élégante 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).
1234567def 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)
Procéder étape par étape pour comprendre le fonctionnement de ce programme récursif :
- Vérification de la condition : si
times > 0, la fonction continue. Dans ce cas,times = 3, donc la condition est vraie ; - Affichage du message : la fonction affiche
"Hello, Recursion!"; - Appel récursif : la fonction s'appelle elle-même avec
times - 1; - Répétition : ce processus se poursuit jusqu'à ce que
timessoit égal à 0 ; - Arrêt : lorsque la condition
times > 0n'est plus vraie, la récursion s'arrête et le programme se termine.
Résultat : Le message "Hello, Recursion!" est affiché trois fois.
Compréhension du déroulement :
À chaque appel récursif, la fonction ajoute une nouvelle trame à 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.
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é.
- Si la chaîne d'entrée
numberest vide, retourner une chaîne vide. - Vérifier si le premier caractère de la chaîne
numberest un chiffre en utilisant la méthodeisdigit()dans une conditionif. - 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. - S'il ne s'agit pas d'un chiffre, effectuer un appel récursif à
format_phone_number, en sautant le premier caractère.
Solution
Merci pour vos commentaires !
single