Dans ce tutoriel, vous découvrirez les fonctions récursives de Python et comment les utiliser pour simplifier votre code.
Une fonction récursive est une fonction qui s'appelle elle-même jusqu'à ce qu'elle ne puisse plus continuer.
La fonction fn() suivante est une fonction récursive car elle a un appel à elle-même :
def fn() :
# ...
fn()
# ...
Dans la fonction fn(), le #... signifie un block de code.
def fn() : # ... if condition : # arrête de s'appeler elle-même else : fn() # ...Généralement, vous utilisez une fonction récursive pour diviser un gros problème difficile à résoudre en petits problèmes plus faciles à résoudre.
3 2 1 0Le code suivant définit la fonction compte-a-rebours() :
def compte-a-rebours( debut) : """ Décompte à partir d'un nombre """ print( debut)Si vous appelez la fonction compte-a-rebours() maintenant :
def compte_a_rebours(debut): """ Compte à rebours àpartir d'un nombre """ print(debut) compte_a_rebours(debut-1) compte_a_rebours(3)Si vous exécutez ce code, vous obtiendrez : soit une erreur ou le code va s'exécuter à l'infini.
def compte_a_rebours(debut): """ Compte à rebours àpartir d'un nombre """ print(debut) if debut-1 >= 0: compte_a_rebours(debut-1) compte_a_rebours(3)Dans cet exemple, la fonction compte-a-rebours() ne s'appelle que lorsque le nombre suivant est supérieur ou égal à zéro. En d'autres termes, si le prochain nombre est inférieur à zéro, elle cesse de s'appeler.
def somme(n): total = 0 for index in range(n+1): total += index return total result = somme(50) print(result)Pour appliquer la technique de récursion, vous pouvez calculer la somme de la séquence de 1 à n comme suit :
def somme(n): if n > 0: return n + somme(n-1) return 0 result = somme(50) print(result)Comme vous pouvez le constater, la fonction récursive est plus courte et plus lisible.
def somme(n): return n + somme(n-1) if n > 0 else 0 result = somme(50) print(result)
Livre numérique court pour comprendre la méthode secrète permettant d'obtenir des likes sans fin sur Facebook.
GAGNER DE L'ARGENT