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 tu écris 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, tu réécrirais 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.
Lis aire_rectangle, prédis ce que renvoie aire_rectangle(5, 3), puis déroule la trace pour vérifier.
prédis le retourfonction
def aire_rectangle(longueur, largeur):
surface = longueur * largeur
return surface Que renvoie aire_rectangle(5, 3) ? prédis d'abord, vérifie ensuite.