Une fonction : un nom, des paramètres, un corps, un retour.
On va décortiquer pièce par pièce, voir ce que Python fait vraiment quand vous écrivez f(3), puis utiliser une fonction pour en construire une autre.
def aire_rectangle(longueur, largeur): surface = longueur * largeur return surface
Passe la souris sur chaque partie pour voir son rôle. Quatre pièces, une recette.
programme
def aire_rectangle(longueur, largeur): surface = longueur * largeur return surface print(aire_rectangle(5, 3))
cadre d'exécution
— (pas de cadre actif)
valeur de retour
— (rien encore)
sortie
— (console vide)
28
La même fonction, des dizaines d'appels différents. C'est ça la réutilisation. Sans fonction, vous réécririez longueur * largeur à chaque fois.
def aire_rectangle(l, L): return l * L def volume_pave(l, L, h): return aire_rectangle(l, L) * h print(volume_pave(2, 3, 4))
Le retour de aire_rectangle devient un opérande de *.
>>> aire_rectangle(2, 3) # appel intérieur
6
>>> volume_pave(2, 3, 4)
6 * 4 = 24
Python évalue d'abord l'appel intérieur, remplace l'expression par sa valeur, puis évalue la suite.
C'est exactement comme en maths : f(g(x)) évalue d'abord g(x).
Une fonction bien conçue fait une seule chose, renvoie un résultat clair, et se laisse composer.
Les paramètres existent en dehors de la fonction.
Une fonction sans return renvoie None.
On peut appeler une fonction plusieurs fois avec des arguments différents.
L'indentation en Python est optionnelle.
Lire aire_rectangle, prédire ce que renvoie aire_rectangle(5, 3), puis dérouler la trace pour vérifier.
prédisez le retourfonction
def aire_rectangle(longueur, largeur):
surface = longueur * largeur
return surface Que renvoie aire_rectangle(5, 3) ? prédisez d'abord, vérifiez ensuite.