Aller au contenu principal

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 :

  1. la définition, introduite par def : elle décrit le calcul, mais ne l'exécute pas ;
  2. 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
11

Lors 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 10

La 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.

  1. g(4) est appelée : dans g, le paramètre x vaut 4.
  2. g calcule f(4) - 4. Il faut d'abord f(4) : dans f, x vaut 4, et f renvoie 3 × 4 + 2 = 14.
  3. g renvoie 14 − 4 = 10.
10

Les 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

Tableau : Étape, Ce qui se passe
ÉtapeCe qui se passe
appel f(4)le paramètre x reçoit l'argument 4
exécution du corpsles lignes indentées sous def s'exécutent
return 3 * x + 2la valeur 14 est calculée et renvoyée
retourl'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.

Explorer les autres cours

Accès rapide