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 tu écris 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 tu appelles 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, tu réécrirais 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

Lis aire_rectangle, prédis ce que renvoie aire_rectangle(5, 3), puis déroule la trace pour vérifier.

prédis le retour

fonction

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

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

·
retour au labo