Sciences numériques et technologie · Seconde
Les fonctions en Python : cours de SNT en seconde
Publié le 9 novembre 2026 · Mis à jour le 9 novembre 2026 · Signaler une erreur
L'essentiel
- Une fonction est un bloc de code nommé, défini avec
def, qui reçoit des paramètres et peut renvoyer un résultat avecreturn. - Définir une fonction ne l'exécute pas : il faut ensuite l'appeler avec des arguments.
returndonne une valeur à l'appelant et termine la fonction ;printaffiche seulement à l'écran.- Les variables créées dans une fonction sont locales : elles n'existent pas en dehors.
- En Python,
a % bdonne le reste de la division euclidienne deaparb6 ; une fonction peut aussi renvoyerTrueouFalse.
Pourquoi utiliser des fonctions ?
Quand tu programmes, tu te retrouves vite à écrire plusieurs fois le même enchaînement d'instructions : calculer une moyenne, tester si un nombre est pair, convertir une température. Recopier ce code partout est long, et si tu découvres une erreur, il faut la corriger à chaque endroit. La fonction règle ce problème : tu écris le calcul une seule fois, tu lui donnes un nom, puis tu l'utilises autant de fois que nécessaire.
Dans ce cours, tu vas apprendre à définir une fonction, à l'appeler, à lui transmettre des données et à récupérer un résultat. Tu as déjà vu les variables, les types, les conditions et les boucles : tu vas t'en servir à l'intérieur des fonctions.
Le programme de mathématiques de seconde précise que le langage choisi est Python 6. Il va plus loin : l'idée de fonction y remplace celle d'entrée au clavier ou d'affichage 6. Un article de Sésamath en tire la conséquence et présente presque tous les algorithmes comme des fonctions 6. Autrement dit, savoir écrire une fonction te servira autant en SNT qu'en mathématiques.
Il existe un second avantage, moins visible au début : lire un programme devient plus facile. Un nom bien choisi comme est_pair(n) ou moyenne(notes) raconte ce que fait le code sans qu'il faille relire chaque ligne. Un long programme se découpe ainsi en petites briques que l'on peut tester séparément.
Définir une fonction avec def
Voici la plus simple des fonctions, qui ne prend rien et ne renvoie rien :
def dire_bonjour():
print("Bonjour !")
Si tu exécutes seulement ces deux lignes, rien ne s'affiche. Tu as expliqué à Python ce que signifie dire_bonjour, mais tu ne lui as pas demandé de le faire. Pour exécuter la fonction, il faut l'appeler :
dire_bonjour()
Cette fois, le message « Bonjour ! » apparaît.
L'indentation n'est pas décorative en Python : c'est elle qui indique où la fonction commence et où elle s'arrête. En général, on décale de quatre espaces. Toutes les lignes de même décalage, placées juste après le :, font partie de la fonction. Dès qu'une ligne revient au bord gauche, tu sors de la fonction.
def saluer():
print("Début")
print("Fin")
print("Cette ligne est hors de la fonction")
Paramètres, arguments et return
Une fonction peut recevoir plusieurs paramètres, séparés par des virgules. L'ordre compte au moment de l'appel :
def aire_rectangle(longueur, largeur):
return longueur * largeur
L'appel aire_rectangle(5, 3) renvoie 15. Si tu échanges les arguments, le résultat ici ne change pas, mais avec une soustraction il changerait : def difference(a, b): return a - b donne difference(7, 2) = 5 et difference(2, 7) = -5.
Une fonction peut aussi renvoyer plusieurs valeurs à la fois, rassemblées en un couple. C'est utile quand le calcul fournit deux résultats liés. Un article de Sésamath sur les algorithmes du programme de maths donne l'exemple d'une fonction dont le résultat dépend d'un entier et qui renvoie un couple de réels, appelés flottants en Python 6.
def somme_et_produit(a, b):
return a + b, a * b
s, p = somme_et_produit(3, 4)
Après l'exécution, s vaut 7 et p vaut 12.
Variables locales et variables globales
Une variable définie en dehors de toute fonction est dite globale. Une fonction peut lire sa valeur, mais le plus propre est de tout lui transmettre par des paramètres. Ainsi, la fonction ne dépend que de ses arguments : mêmes arguments, même résultat. Cette habitude rend les programmes plus sûrs et plus faciles à tester.
Conditions, boucles et fonctions
Le contenu d'une fonction peut utiliser tout ce que tu connais : conditions if, boucles for et while. Une fonction devient alors un véritable algorithme réutilisable.
Parmi les exemples d'algorithmes du programme de maths traduits en Python par Sésamath, on trouve une fonction qui teste si un entier est divisible par 7. Pour ce nombre, aucun critère simple n'est connu : on effectue la division euclidienne et on regarde si le reste est nul 6. En Python, le reste de la division euclidienne de a par b se note a % b 6.
Fonctions qui renvoient un booléen ou travaillent sur des listes
Une fonction qui répond par True ou False s'appelle souvent un test ou un prédicat. Un article de Sésamath sur le programme de maths utilise cette idée pour une relation entre deux variables : pour un couple , la fonction renvoie True si la relation est vérifiée, False sinon 6. On l'applique par exemple pour savoir si un point appartient ou non à une droite 6.
Pour traiter beaucoup de données, comme des notes ou des mesures, on les range dans une liste, notée entre crochets en Python 6. Le même article propose de définir des fonctions de statistiques, comme la moyenne ou l'écart type, qui reçoivent une liste de nombres et renvoient un nombre 6.
def moyenne(liste):
total = 0
for valeur in liste:
total = total + valeur
return total / len(liste)
Pour moyenne([12, 8, 10]), le total vaut 30 et la liste contient 3 éléments : la fonction renvoie 10.0. L'opérateur / donne toujours un flottant (un nombre écrit avec un point, comme 10.0), même quand le résultat tombe juste.
Tester, déboguer et bien documenter ses fonctions
Pense aussi à documenter : une courte phrase entre triples guillemets, placée juste sous la ligne def, explique ce que fait la fonction.
def aire_cercle(rayon):
"""Renvoie l'aire d'un disque de rayon donné."""
return 3.14159 * rayon ** 2
Cette phrase aide la personne qui relira ton code, et ce sera peut-être toi dans un mois.
Exercices corrigés
Exercice 1 Évaluer une fonction écrite en Python
On considère la fonction suivante :
def g(x):
return 4 * x - 5
- Que renvoie l'appel
g(6)? - On écrit
a = g(2)puisb = g(a). Quelle est la valeur deb?
Donne la valeur de b comme réponse finale.
Indice 1
Remplace x par la valeur donnée, puis calcule.
Indice 2
Pour b, l'argument est la valeur de a, pas le nombre 2.
Voir la correction pas à pas
Pour
g(6), on remplacexpar 6 : .Pour
a = g(2), on calcule , doncavaut 3.Pour
b = g(a), l'argument est maintenant 3 : .La valeur de
best donc 7.
On peut utiliser le résultat d'une fonction comme argument d'un nouvel appel. Ici, b vaut 7.
Exercice 2 Reste de division et fonction de test
On définit :
def reste_7(n):
return n % 7
def est_multiple_de_7(n):
return reste_7(n) == 0
- Que renvoie
reste_7(47)? - Que renvoie
est_multiple_de_7(63)? - Écris une fonction
est_multiple_de_5(n)sur le même modèle.
Donne comme réponse numérique le résultat de la question 1.
Indice 1
n % 7 est le reste de la division euclidienne de n par 7.
Indice 2
47 = 7 × 6 + 5 : cherche le plus grand multiple de 7 inférieur ou égal à 47.
Voir la correction pas à pas
Pour la question 1, on cherche la division euclidienne de 47 par 7 : . Le reste est 5, donc
reste_7(47)renvoie 5.Pour la question 2, . Le reste est 0, donc
reste_7(63) == 0est vrai et la fonction renvoieTrue.Pour la question 3, on remplace 7 par 5 :
def est_multiple_de_5(n): return n % 5 == 0Vérification :
est_multiple_de_5(35)renvoieTrueetest_multiple_de_5(36)renvoieFalse, car 36 % 5 vaut 1.
Le reste de 47 par 7 est 5. Un nombre est multiple de exactement lorsque le reste de sa division par est nul.
Exercice 3 Moyenne d'une liste
Une élève range ses notes dans la liste [14, 9, 17, 12]. Elle utilise la fonction suivante :
def moyenne(liste):
total = 0
for valeur in liste:
total = total + valeur
return total / len(liste)
- Fais évoluer à la main la variable
totalpendant la boucle. - Quelle est la valeur renvoyée par
moyenne([14, 9, 17, 12])? - Que se passerait-il si le
returnétait décalé à l'intérieur de la boucle ?
Donne la moyenne comme réponse numérique.
Indice 1
La variable total part de 0 et reçoit chaque note l'une après l'autre.
Indice 2
len(liste) donne le nombre d'éléments de la liste.
Voir la correction pas à pas
Au départ
totalvaut 0.Après 14,
totalvaut 14 ; après 9, il vaut 23 ; après 17, il vaut 40 ; après 12, il vaut 52.La liste contient 4 éléments, donc
len(liste)vaut 4.La fonction renvoie .
Si le
returnétait dans la boucle, la fonction s'arrêterait au premier tour et renverrait , ce qui est faux.
La moyenne vaut 13.0. Un return mal placé suffit à fausser tout le calcul.
Quiz
7 questions · correction immédiate · ton score reste sur ton appareil.
-
On écrit
defsuivi du nom et des parenthèses.returnsert à renvoyer un résultat depuis la fonction, pas à la créer.functionetdefinen'existent pas en Python, même si d'autres langages utilisent des mots proches. -
On remplace x par 5 : . Le résultat 10 correspond à l'oubli du +1, et 12 à une erreur de calcul sur le produit.
-
returnfournit une valeur à l'appelant, qui peut la stocker ou la calculer, et il arrête la fonction.printaffiche un texte mais laisseNoneà l'appelant. L'inverse proposé dans la deuxième réponse est faux. -
C'est faux : une telle variable est locale et disparaît à la fin de l'exécution de la fonction. L'utiliser ensuite provoque un
NameError. Pour transmettre la valeur, on passe parreturn. -
L'opérateur
%donne le reste de la division euclidienne 6. Comme , le reste est 1. Le nombre 4 est le quotient, pas le reste. -
Le calcul
n * nest effectué mais jamais renvoyé, doncyreçoitNone. L'écrituren * nest tout à fait valable,n ** 2n'est pas obligatoire, et les paramètres sont permis. -
Sans parenthèses, on désigne la fonction sans la lancer. L'appel demande les parenthèses. Il n'y a ni suppression ni erreur de syntaxe dans ce cas.
Les questions qu'on se pose
Quelle différence entre un paramètre et un argument ?
Le paramètre est le nom écrit dans la définition (def f(x):). L'argument est la valeur donnée à l'appel (f(5)). Au moment de l'appel, le paramètre prend la valeur de l'argument. Dans la vie courante, beaucoup de gens emploient les deux mots l'un pour l'autre ; à l'école, retiens bien la distinction.
Pourquoi ma fonction affiche un résultat mais je ne peux pas l'utiliser ensuite ?
Tu as sans doute utilisé print à la place de return. print montre la valeur à l'écran, mais l'appelant reçoit None. Remplace le print final par return, puis affiche le résultat à l'extérieur si tu veux le voir : print(f(4)).
À quoi servent les fonctions en mathématiques et en SNT ?
Elles permettent de traduire un algorithme ou une formule en programme réutilisable. Le programme de mathématiques de seconde choisit Python et décrit les algorithmes comme des fonctions 6. Tu peux donc tester une formule sur de nombreuses valeurs sans refaire le calcul à la main.
Comment savoir si ma fonction est correcte ?
Teste-la sur des cas dont tu connais déjà la réponse, y compris des cas limites : zéro, un nombre négatif, une liste vide. Tu peux écrire des assert pour que Python fasse la comparaison à ta place. Si un test échoue, suis les variables avec des print temporaires pour trouver la ligne fautive.
Une fonction peut-elle appeler une autre fonction ?
Oui, et c'est courant. Dans l'exercice sur les multiples de 7, est_multiple_de_7 s'appuie sur reste_7. Découper un problème en petites fonctions rend chaque morceau plus simple à écrire et à tester.
Sources
Programme visé : Programme d'enseignement de sciences numériques et technologie - Classe de seconde générale et technologique · Ministère de l'Éducation nationale et de la Jeunesse - Bulletin Officiel
- Programme d'enseignement de sciences numériques et technologie - Classe de seconde générale et technologique, Ministère de l'Éducation nationale et de la Jeunesse - Bulletin Officiel. Consulté le 9 novembre 2026.
- Ressources pour l'enseignement des SNT en classe de seconde, Éduscol STI. Consulté le 9 novembre 2026.
- Les fonctions, du Python au VBA en passant par Excel, Éduscol STI. Consulté le 9 novembre 2026.
- Programmes et ressources en sciences numériques et technologie - voie GT, Éduscol. Consulté le 9 novembre 2026.
- Manuel Seconde 2023 - Programmation en Python (pages 206-207), Sesamath. Consulté le 9 novembre 2026.
- Les exemples d'algorithmes du nouveau lycée général, en Python, Sesamath. Consulté le 9 novembre 2026.
Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.