Sciences numériques et technologie · Seconde
Fonctions en Python : exercices corrigés de SNT en 2de
Publié le 9 novembre 2026 · Mis à jour le 9 novembre 2026 · Signaler une erreur
L'essentiel
- Une fonction se définit avec def, reçoit des paramètres et renvoie un résultat avec return.
- return rend une valeur utilisable ailleurs ; print affiche seulement à l'écran.
- Le corps de la fonction est indenté ; l'appel se fait avec des parenthèses :
f(4). a % bdonne le reste de la division euclidienne de a par b : pratique pour tester la divisibilité 6.- Pour réussir : lire l'énoncé, repérer les paramètres, écrire la fonction, puis la tester sur un cas dont on connaît la réponse.
Comment utiliser ces exercices
Ces exercices te font manipuler les fonctions en Python, un outil central du programme de SNT en seconde. Dans le programme de maths comme en SNT, le langage utilisé est Python, et l'on décrit de plus en plus les algorithmes sous forme de fonctions plutôt que par des saisies et des affichages 6. Savoir écrire une fonction est donc utile bien au-delà de ce chapitre.
Les exercices sont classés par difficulté croissante, du niveau 1 (appliquer une formule) au niveau 3 (combiner condition, boucle et liste). Pour chacun, essaie d'abord seul(e) pendant quelques minutes, avec un brouillon. Les indices sont là pour te débloquer sans tout révéler ; la correction détaille chaque étape.
Les exercices
Exercice 1 Évaluer une fonction affine
On considère la fonction Python suivante :
def f(x):
return 3 * x + 2
- Que renvoie
f(4)? - Écris l'instruction qui affiche cette valeur à l'écran.
Indice 1
Remplace x par 4 dans l'expression après return.
Indice 2
Pour afficher, enveloppe l'appel de la fonction dans print(...).
Voir la correction pas à pas
On remplace le paramètre
xpar l'argument4: l'expression devient3 * 4 + 2.On applique les priorités de calcul : la multiplication d'abord,
3 * 4 = 12.On ajoute 2 :
12 + 2 = 14. La fonction renvoie donc14.Pour afficher le résultat, on écrit
print(f(4)). L'appelf(4)est évalué d'abord, puisprintaffiche14.
f(4) renvoie 14. Appeler une fonction, c'est remplacer son paramètre par l'argument et exécuter le corps.
Exercice 2 Aire d'un rectangle
Écris une fonction aire(largeur, longueur) qui renvoie l'aire d'un rectangle. Que renvoie l'appel aire(7.5, 4) ? On exprime les longueurs en centimètres.
Indice 1
L'aire d'un rectangle est le produit de ses deux dimensions.
Indice 2
N'oublie pas return : sans lui, la fonction ne renvoie rien d'exploitable.
Voir la correction pas à pas
On choisit l'en-tête avec deux paramètres :
def aire(largeur, longueur):.Dans le corps indenté, on écrit
return largeur * longueur.On appelle
aire(7.5, 4): Python calcule7.5 * 4.Le produit vaut
30.0. En Python, un nombre à virgule est un flottant, d'où l'écriture avec.0. L'aire est de 30 cm².
La fonction s'écrit def aire(largeur, longueur): return largeur * longueur (sur deux lignes) et aire(7.5, 4) renvoie 30.0, soit 30 cm².
Exercice 3 Reste d'une division
On écrit :
def reste_par_7(n):
return n % 7
- Que renvoie
reste_par_7(2026)? - Que peux-tu dire de 2026 si le résultat avait été
0?
Indice 1
Cherche le plus grand multiple de 7 inférieur ou égal à 2026.
Indice 2
Un reste nul signifie que la division « tombe juste ».
Voir la correction pas à pas
L'opérateur
%renvoie le reste de la division euclidienne denpar 7 6.On cherche le plus grand multiple de 7 qui ne dépasse pas 2026 :
7 × 289 = 2023, et7 × 290 = 2030est trop grand.Le reste est
2026 - 2023 = 3. Doncreste_par_7(2026)renvoie3.Si le résultat avait été
0, 2026 serait un multiple de 7, donc divisible par 7.
reste_par_7(2026) renvoie 3. Tester si n % 7 == 0 permet de savoir si n est divisible par 7.
Exercice 4 Un tarif selon l'âge
Un musée applique ces tarifs : 5 euros pour les moins de 12 ans, 8 euros de 12 à 25 ans inclus, 12 euros au-delà.
- Écris une fonction
tarif(age)qui renvoie le prix d'une entrée. - Une sortie réunit trois visiteurs de 8 ans, 15 ans et 40 ans. Quel est le prix total ?
Indice 1
Utilise if, elif et else pour distinguer les trois cas.
Indice 2
Teste d'abord la condition la plus restrictive : age < 12.
Voir la correction pas à pas
On écrit l'en-tête :
def tarif(age):.Premier cas :
if age < 12:puisreturn 5.Deuxième cas :
elif age <= 25:puisreturn 8. On arrive ici seulement siage >= 12, donc la borne basse est déjà vérifiée.Dernier cas :
else:puisreturn 12.Pour 8 ans :
tarif(8)renvoie 5. Pour 15 ans :tarif(15)renvoie 8. Pour 40 ans :tarif(40)renvoie 12.Total :
5 + 8 + 12 = 25euros.
Les conditions sont examinées dans l'ordre et la première vraie l'emporte. Le prix total est de 25 euros.
Exercice 5 Somme des carrés avec une boucle
On veut une fonction somme_carres(n) qui renvoie .
- Complète le programme :
def somme_carres(n):
total = 0
for k in range(1, n + 1):
total = ...
return total
- Calcule
somme_carres(5).
Indice 1
range(1, n + 1) parcourt les entiers de 1 à n inclus.
Indice 2
À chaque tour, on ajoute k ** 2 au total.
Voir la correction pas à pas
On initialise
totalà 0 : c'est l'élément neutre de l'addition.À chaque passage dans la boucle, on remplace
...partotal + k ** 2.Avec
n = 5,kprend les valeurs 1, 2, 3, 4, 5.Le total évolue ainsi : 0, puis 1, puis 5, puis 14, puis 30, puis 55.
La fonction renvoie
55après la boucle. Lereturnest bien placé hors de la boucle : s'il était indenté dedans, la fonction s'arrêterait dès le premier tour.
somme_carres(5) renvoie 55. Vérification à la main : .
Exercice 6 Moyenne d'une liste de notes
Une liste contient quatre notes : [12, 15, 9, 14].
- Écris une fonction
moyenne(liste)qui renvoie la moyenne des valeurs. Tu peux utilisersum(liste)etlen(liste). - Quelle valeur renvoie
moyenne([12, 15, 9, 14])?
Indice 1
sum additionne tous les éléments, len donne leur nombre.
Indice 2
La moyenne est la somme divisée par l'effectif.
Voir la correction pas à pas
Les statistiques portent naturellement sur des listes de nombres, et les fonctions comme la moyenne prennent une liste en paramètre 6.
On écrit
def moyenne(liste):.Dans le corps :
return sum(liste) / len(liste).Pour
[12, 15, 9, 14]:sumvaut etlenvaut 4.On calcule
50 / 4 = 12.5.
La fonction renvoie 12.5. Elle fonctionne pour une liste de n'importe quelle longueur non vide ; sur une liste vide, len vaut 0 et la division provoquerait une erreur.
Exercice 7 Un point appartient-il à une droite ?
Une droite a pour équation . Une relation entre deux variables peut se programmer comme une fonction qui renvoie True ou False selon qu'elle est vérifiée ou non 6.
- Écris une fonction
sur_droite(x, y)qui renvoieTruesi le point de coordonnées est sur . - On teste la liste de points
[(13, 21), (10, 14), (0, -5), (4, 3)]. Combien sont sur la droite ?
Indice 1
Le point est sur la droite si ses coordonnées vérifient l'équation. Compare y à 2 * x - 5 avec ==.
Indice 2
Pour compter, utilise une boucle for et un compteur qui augmente quand la fonction renvoie True.
Voir la correction pas à pas
On écrit
def sur_droite(x, y):puisreturn y == 2 * x - 5. L'expressiony == 2 * x - 5vaut déjàTrueouFalse: inutile d'ajouter unif.Point (13 ; 21) : , égal à
y, doncTrue.Point (10 ; 14) : , différent de 14, donc
False.Point (0 ; -5) : , donc
True.Point (4 ; 3) : , donc
True.Trois points sur quatre vérifient l'équation.
3 points appartiennent à la droite ; seul (10 ; 14) n'y est pas. Attention à ne pas confondre == (comparaison) et = (affectation).
Exercice 8 Convertir des températures
Un thermomètre connecté relève une température corporelle en degrés Celsius. On veut l'afficher en degrés Fahrenheit grâce à la formule .
- Écris une fonction
en_fahrenheit(c). - Écris une fonction
est_fievre(c)qui renvoieTruesi une température en °C est strictement supérieure à 37,5 (pas besoin de réutiliser la fonction précédente). - Calcule
en_fahrenheit(37).
Indice 1
Une fonction peut en appeler une autre, mais ici la formule suffit.
Indice 2
En Python, la virgule décimale s'écrit avec un point : 1.8.
Voir la correction pas à pas
On écrit
def en_fahrenheit(c):puisreturn 1.8 * c + 32.Pour la seconde fonction :
def est_fievre(c):puisreturn c > 37.5. La comparaison renvoie directement un booléen.Pour
c = 37: on calcule d'abord, à la main, .On ajoute 32 :
66.6 + 32 = 98.6.Remarque :
est_fievre(37)renvoieFalse, car 37 n'est pas supérieur à 37,5.
en_fahrenheit(37) renvoie 98.6, soit 98,6 °F. Selon les arrondis internes des flottants, Python peut afficher un résultat très légèrement différent comme 98.60000000000001 ; ce n'est pas une erreur de ta fonction.
Les questions qu'on se pose
Quelle est la différence entre un paramètre et un argument ?
Le paramètre est le nom écrit dans la définition : dans def f(x):, c'est x. L'argument est la valeur donnée lors de l'appel : dans f(4), c'est 4. Le paramètre est une case vide, l'argument est ce qu'on met dedans.
Pourquoi ma fonction affiche `None` ou ne donne rien d'utile ?
Il manque très probablement un return. Sans lui, une fonction renvoie la valeur spéciale None. Si tu as seulement écrit print dans la fonction, le résultat s'affiche mais ne peut pas être réutilisé dans un calcul. Remplace-le par return, puis affiche l'appel avec print(ma_fonction(...)).
Comment savoir si ma fonction est correcte ?
Teste-la sur un cas dont tu connais la réponse (par exemple f(0) ou une valeur calculée à la main), puis sur un cas limite : liste d'un seul élément, valeur nulle, valeur négative. Si les résultats ne correspondent pas à ton calcul à la main, relis les conditions, l'indentation et la place du return.
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.