module · fonctions Python · 15 min

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.

anatomie
def aire_rectangle(longueur, largeur):
    surface = longueur * largeur
    return surface
survole la fonction

Passe la souris sur chaque partie pour voir son rôle. Quatre pièces, une recette.

ce qui se passe quand vous appelez f(...)
étape 1 / 6

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)

le programme rencontre l'expression aire_rectangle(5, 3)

change les arguments, observe le retour
7
4
>>> aire_rectangle(7, 4)
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.

composer : la sortie d'une fonction comme argument d'une autre
code · règle les arguments
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))
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.

vrai / faux · 4 affirmations

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.

défi · prédire le retour
palier 1 / 4

Lire aire_rectangle, prédire ce que renvoie aire_rectangle(5, 3), puis dérouler la trace pour vérifier.

prédisez le retour

fonction

def aire_rectangle(longueur, largeur):
    surface = longueur * largeur
    return surface

Que renvoie aire_rectangle(5, 3) ? prédisez d'abord, vérifiez ensuite.

·
retour au labo