Les boites de dialogue : Définition et utilisation des boites de dialogue.
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)