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 :
- Cas de base : Définit quand la récursion doit s'arrêter.
- É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 : 120Ici, 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 : ollehDans 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.
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) = 0fibonacci(2) = 1fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)pourn > 2.
Exemple d'entrée :
n = 6Exemple de sortie :
5Aide-mémoire
Les fonctions récursives comportent deux parties essentielles :
- Cas de base : Définit quand la récursion doit s'arrêter
- É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: 120Exemple 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: ollehEssayez vous-même
def fibonacci(n):
# Écrire le code iciCette 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
1Exploration des variables
ConstantesAffectations multiplesÉchange de variablesVariables de substitutionArrondir des nombresCasting de listes4Application de carnet de contacts
Afficher le menuAjouter un contact7Ensembles Partie 2
Opérations mathématiques Partie 1Opérations mathématiques Partie 2Récapitulatif - Chasse au trésorSous-ensembles et sur-ensemblesItérer sur les ensemblesRécapitulatif - Suivi de tournoi10Compréhensions de listes basiques
La syntaxeCréer des listes simplesAjouter des conditionsUtiliser l'agrégation de donnéesRécapitulatif - House Of ListsRécapitulatif - Elements Of Freedom13Système de gestion des stocks
Présentation du projetAjouter un article2Les dictionnaires - Partie 1
Qu'est-ce qu'un dictionnaire ?Créer un dictionnaireAccéder aux valeursModifier des dictionnairesRécapitulatif - Gestionnaire de recettes5Prise de décision avancée
Opérateur ternaireVérifications d'appartenanceVérifications d'identitéErreurs d'indentationRécapitulatif - Filtre de vacances8Gestionnaire de dossiers étudiants
Présentation du projetAjouter un étudiant11Fonctions avancées
Retourner plusieurs valeursFonctions Lambda - Partie 1Fonctions Lambda - Partie 2Défi récapitulatif - Tri LambdaFonctions récursives - Partie 1Fonctions récursives - Partie 2Récapitulatif - Somme d'une liste imbriquée14Fonctions d'ordre supérieur
La fonction MapLa fonction FilterRécapitulatif - Validateur d'e-mailsRécapitulatif - Processeur de nombres3Dictionnaires - Partie 2
Méthodes de dictionnaireDictionnaires imbriquésVérification des clésParcourir les dictionnairesRécapitulatif - Compteur de fréquence6Les Ensembles - Partie 1
Qu'est-ce qu'un ensemble ?Opérations de baseMéthodes des ensemblesRécapitulatif - Supprimer les doublons9Agrégation de données avancée
Utilisation de SumTrouver le minimum et le maximumTrier les données efficacementRécapitulatif - Trieur de dictionnaires