Vous avez des améliorations (ou des corrections) à proposer pour ce document :
je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Le langage Python permet, bien entendu de définir des fonctions. De plus, il permet la définition de fonctions récursives.
Exemple de code
Cet exemple de code compare deux manières de coder une fonction de calcul de factorielle. La première, factIter, utilise un algorithme itératif alors que la seconde, factRec
utilise un algorithme récursif.
#!/usr/bin/python3def factIter( n ):
sum = 1
while n>1:
sum *= n
n -= 1
return sum
def factRec( n ):
if n == 0 or n == 1:
return 1
return n * factRec( n - 1 )
print( "---factIter tests-----------------------------" )
print( factIter( 3 ) )
print( factIter( 6 ) )
print( "---factRec tests------------------------------" )
print( factRec( 3 ) )
print( factRec( 6 ) )
Pour lancer cet exemple, veuillez procéder ainsi :
n'oubliez jamais que la pile d'éxecution est bornée. Comme une fonction récursive utilise la pile d'exécution, on ne peut pas produire une chaîne d'appels infinie. Comparer les deux approches en calculant
des factorielle sur des grandes valeurs (plus de 1000) et vous vérrez les limitations de l'approche récursive.
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :