Informatique · Seconde · 4 min de lecture
Fonctions : nommer un calcul pour le réutiliser
Définir une fonction avec def, ses paramètres et l'instruction return qui renvoie un résultat et termine l'exécution de la fonction ; appeler une fonction avec des arguments ; variables locales ; différence entre renvoyer une valeur (return) et l'afficher (print).
Chapitre du programme : Sciences numériques et technologie
Bloc 1 sur 7 · Comprendre
Comprendre : définir, puis appeler
Une fonction donne un nom à un calcul, pour pouvoir le refaire avec d'autres valeurs sans le réécrire. Deux temps à bien distinguer :
- la définition, introduite par
def: elle décrit le calcul, mais ne l'exécute pas ; - l'appel, qui exécute le calcul pour des valeurs précises.
def aire_rectangle(longueur, largeur):
return longueur * largeur
a = aire_rectangle(7, 3)
print(a)
print(aire_rectangle(2, 5) + aire_rectangle(1, 1))21
11Lors de l'appel aire_rectangle(7, 3), les paramètres longueur et largeur reçoivent les arguments 7 et 3, dans cet ordre. L'instruction return renvoie le résultat, 21, à l'endroit de l'appel : tout se passe comme si l'appel était remplacé par sa valeur. C'est pourquoi on peut additionner deux appels : 10 + 1 = 11.
Bloc 2 sur 7 · Approfondir
Approfondir : renvoyer n'est pas afficher
print affiche une valeur à l'écran ; return la renvoie au programme qui a appelé la fonction. Ce n'est pas la même chose :
def double_affiche(x):
print(2 * x)
def double(x):
return 2 * x
r1 = double_affiche(5)
r2 = double(5)
print(r1, r2)10
None 10La première ligne affichée, 10, vient du print placé DANS double_affiche. Mais cette fonction ne renvoie rien : Python lui fait renvoyer la valeur spéciale None, et r1 vaut None. Seule double fournit un résultat réutilisable.
return termine la fonction. Dès qu'un return est exécuté, la fonction s'arrête, même au milieu d'une boucle. Les variables créées dans une fonction (comme s ci-dessous) sont locales : elles n'existent que pendant l'appel.
Bloc 3 sur 7 · Exemple
Exemple guidé : suivre des appels emboîtés
Énoncé. Qu'affiche ce programme ?
def f(x):
return 3 * x + 2
def g(x):
return f(x) - x
print(g(4))Méthode : remplacer chaque appel par sa valeur.
g(4)est appelée : dansg, le paramètre x vaut 4.gcalculef(4) - 4. Il faut d'abordf(4): dansf, x vaut 4, etfrenvoie 3 × 4 + 2 = 14.grenvoie 14 − 4 = 10.
10Les deux fonctions ont chacune leur paramètre x : ce sont deux variables distinctes, qui n'existent que pendant leur appel respectif.
Bloc 4 sur 7 · Visualiser
Voir : le trajet d'un appel
| Étape | Ce qui se passe |
|---|---|
appel f(4) | le paramètre x reçoit l'argument 4 |
| exécution du corps | les lignes indentées sous def s'exécutent |
return 3 * x + 2 | la valeur 14 est calculée et renvoyée |
| retour | l'appel f(4) est remplacé par 14 dans l'expression appelante |
Une définition seule ne produit rien : si un programme contient des def mais aucun appel, il n'affiche rien.
Continuez sur votre lancée
Vous avez découvert l’essentiel et un exemple. Retrouvez la suite du cours et les points à retenir, puis passez à l’entraînement guidé dans votre compte.
- Les formules et les repères à retenir
- Les erreurs fréquentes expliquées
- Un exercice avec des aides et sa correction
L’accès gratuit comprend les cours et exercices de votre niveau choisi.
Sources
- BO spécial n°1 du 22 janvier 2019 — programme de sciences numériques et technologie de seconde, « Notions transversales de programmation »
- BO spécial n°1 du 22 janvier 2019 — programme de mathématiques de seconde, « Algorithmique et programmation », « Notion de fonction »
- Documentation officielle de Python 3 — The Python Tutorial, § 4.8 « Defining Functions » (https://docs.python.org/3/tutorial/controlflow.html)
Vous pensez avoir trouvé une erreur dans cette leçon ? Signalez-la par e-mail.