récursion en Python

Comment utiliser la récursion Python

La récursion Python est un sujet intimidant pour les débutants. Dissipons le mythe selon lequel la récursivité est difficile en la définissant. La récursivité est une méthode de programmation o√π une fonction s’appelle elle-même.

Cela semble simple, non ? Une fois que vous avez compris, la récursivité n’est pas un concept difficile.

Dans ce tutoriel Python, nous allons parler de la récursivité et de son fonctionnement. Nous allons parcourir un exemple de récursivité utilisant des fonctions factorielles pour vous aider à démarrer avec cette méthode de programmation.

Qu’est-ce que la récursivité ?

La récursivité est l’endroit o√π vous définissez quelque chose en termes de elle-même.

Une fonction récursive résout les problèmes en s’appelant à nouveau. Ce comportement est pris en charge dans la plupart des principaux langages de programmation, tels que Python. Ils sont une partie cruciale de l’informatique et de la science des données.

La récursivité est utile lorsque la solution à un problème peut être trouvée en le décomposant en problèmes plus petits qui utilisent tous la même formule. Ces types de problèmes sont souvent appelés " algorithmes récursifs ". La clé pour les résoudre est dans le nom !

Itératif vs. Récursif

Il existe deux façons de résoudre un algorithme : de manière itérative ou récursive.

Les solutions itératives aux algorithmes sont considérées comme "puissantes mais laides" Ils font le travail, mais ils ne le font pas exactement de la manière la plus élégante. Pour bien comprendre les algorithmes récursifs, nous devons examiner les fonctions itératives.

81 % des participants ont déclaré qu’ils se sentaient plus confiants quant à leurs perspectives d’emploi dans la technologie après avoir assisté à un bootcamp. Soyez jumelé à un bootcamp aujourd’hui.

Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.

Un function est une fonction qui résout un problème à l’aide d’une boucle. Il exécutera le code à l’intérieur d’une boucle jusqu’à ce que cette boucle soit terminée. Une fonction récursive est une fonction qui décompose un problème en parties plus petites et résout chaque partie en s’appelant.

Factoriales : l’exemple itératif

Les factorielles sont un bon moyen de démontrer la récursivité et pensée itérative. En mathématiques, les factorielles sont la somme d’un nombre et de chaque nombre avant qu’il ne soit multiplié.

La factorielle de 5 est égale à 5 * 4 * 3 * 2 * 1. La factorielle de 2 est égale à 2 * 1.

Pour calculer un factorielle, nous pouvons écrire une fonction itérative :

Cette fonction utilise une boucle for pour parcourir tous les nombres dans la plage de 1 et le nombre que nous avons spécifié plus 1. Pour chaque itération, le nombre sur lequel la boucle itère est multiplié par le total. Appelons notre fonction pour trouver la factorielle :

Notre code renvoie : 24. Pour arriver à cette solution, notre code s’exécute :

  • 1 * 1 = 1
  • 2 * 2 = 4
  • 4 * 3 = 8
  • 8 * 4 = 24

Comme vous pouvez le voir, notre code multiplie 4 avec tous les nombres inférieurs à lui et ensuite lui-même.

Ce code est fonctionnel. Le seul inconvénient est qu’il n’est pas aussi élégant qu’il pourrait l’être. C’est là que les fonctions récursives sont utiles.

Factoriales : l’exemple de récursivité

√âcrivons une fonction récursive qui calcule une factorielle. Ouvrez un nouveau fichier Python et collez le code suivant :

Ce code utilise l’approche récursive. Lorsque cette fonction est exécutée, un ‚"if‚" l’instruction est exécutée. Cette instruction vérifie si le nombre passé à la fonction est égal à 1. Si c’est le cas, notre fonction renvoie 1. Sinon, la factorielle de notre nombre est calculée.

Ce calcul fonctionne en multipliant le nombre passé à la fonction par la factorielle du nombre précédent. Cette fonction est appelée encore et encore jusqu’à ce que "nombre‚" est égal à 1. Chaque fois que la fonction est appelée, la valeur de "nombre" est réduit de 1.

Essayons notre code avec le numéro 4 :

La réponse 24 est renvoyée. Notre réponse est correcte ; c’est la même que notre dernier exemple. Nous avons trouvé la solution à ce problème de manière récursive plutôt qu’itérative.

Avez-vous encore besoin d’un peu d’aide ? Passons en revue un autre exemple de récursivité.

Récursion avec la séquence de Fibonacci

La suite de Fibonacci est une suite mathématique o√π chaque nombre est la somme des deux nombres précédents. Cette suite commence par : 0, 1, 1, 2, 3, 5, 8, 13, etc.

Cette séquence ajoute deux nombres pour trouver le nombre suivant. Cela la rend idéale pour la récursivité.

Ouvrez un fichier Python et collez ce code :< br>

Ce code calculera la somme de deux nombres précédents dans une liste, tant que "nombre‚" est supérieur à 1. Sinon, "nombre est renvoyé". Maintenant, appelons notre fonction :

"Career Karma est entré dans ma vie au moment o√π j’en avais le plus besoin et m’a rapidement aidé à participer à un bootcamp. Deux mois après avoir obtenu mon diplôme, j’ai trouvé l’emploi de mes rêves qui aligné avec mes valeurs et mes objectifs dans la vie !"

Venus, ingénieur logiciel chez Rockbot

La variable d’exécutions suit le nombre de nombres dans le séquence de Fibonacci que nous voulons calculer. Nous l’utilisons pour créer une boucle for qui appelle notre fonction fibonacci() pour chaque nombre dans la plage de 1 et la valeur de "executions.‚"

Avant que notre boucle for ne démarre, nous affichons "Séquence de Fibonacci :" à la console. Dans cet exemple, notre "for" la boucle s’exécute :

Exécutons notre code tous ensemble et voyons ce qui se passe :

Notre code calcule les cinq premiers nombres de la séquence de Fibonacci. Nous pourrions calculer plus de nombres en augmentant la valeur des "exécutions‚".

Profondeur de récursivité et conditions de base

Une fonction récursive doit avoir une condition de base. Il s’agit d’une condition qui arrête la récursivité lorsqu’un cas de base particulier est satisfait. Sans fonction de base, une boucle infinie sera créée.

Une fonction récursive ne peut s’exécuter que 1 000 fois par défaut. Une fois cette limite atteinte, une erreur comme celle-ci apparaaît :

Voici la condition de base pour notre programme Fibonacci :

Cette condition vérifie si la valeur de "nombre" à l’intérieur de notre programme Fibonacci est égale ou inférieure à 1. Si c’est le cas, la valeur de "nombre" est renvoyée ; sinon, la fonction récursive démarre.

Pourquoi Dois-je utiliser la récursivité ?

Quel est l’avantage d’utiliser la récursivité par rapport aux fonctions itératives ? ‚Äã‚ÄãTechniquement, les deux méthodes peuvent accomplir le même résultat. La récursivité est qu’elle est plus facile à lire.

Quand vous voyez une fonction récursive, il est clair que la réponse à un problème réside dans sa décomposition en parties plus petites. Alors que les boucles itératives peuvent parfois être plus rapides, les fonctions récursives sont généralement préférées en raison de leur lisibilité.

Parce que les fonctions récursives sont plus faciles à lire, elles sont également plus faciles à maintenir et à déboguer. Ceci est particulièrement utile lorsque vous écrivez des algorithmes complexes qui peuvent être difficiles à comprendre.

Conclusion

Une fonction récursive est une fonction qui s’appelle elle-même pour trouver la solution à un problème. ;

Les fonctions récursives décomposent un problème en plusieurs parties et résolvent une partie du problème par itération. Les fonctions récursives sont couramment utilisées pour calculer des factorielles et des nombres dans la séquence de Fibonacci. Ils sont également utilisés dans un certain nombre d’algorithmes.

Vous êtes maintenant prêt à commencer à travailler avec des fonctions récursives en Python.

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method