Aller au contenu

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 % b donne 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

★☆☆Environ 5 min

On considère la fonction Python suivante :

def f(x):
    return 3 * x + 2
  1. Que renvoie f(4) ?
  2. É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
  1. On remplace le paramètre x par l'argument 4 : l'expression devient 3 * 4 + 2.

  2. On applique les priorités de calcul : la multiplication d'abord, 3 * 4 = 12.

  3. On ajoute 2 : 12 + 2 = 14. La fonction renvoie donc 14.

  4. Pour afficher le résultat, on écrit print(f(4)). L'appel f(4) est évalué d'abord, puis print affiche 14.

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

★☆☆Environ 6 min

É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
  1. On choisit l'en-tête avec deux paramètres : def aire(largeur, longueur):.

  2. Dans le corps indenté, on écrit return largeur * longueur.

  3. On appelle aire(7.5, 4) : Python calcule 7.5 * 4.

  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

★☆☆Environ 6 min

On écrit :

def reste_par_7(n):
    return n % 7
  1. Que renvoie reste_par_7(2026) ?
  2. 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
  1. L'opérateur % renvoie le reste de la division euclidienne de n par 7 6.

  2. On cherche le plus grand multiple de 7 qui ne dépasse pas 2026 : 7 × 289 = 2023, et 7 × 290 = 2030 est trop grand.

  3. Le reste est 2026 - 2023 = 3. Donc reste_par_7(2026) renvoie 3.

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

★★☆Environ 12 min

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

  1. Écris une fonction tarif(age) qui renvoie le prix d'une entrée.
  2. 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
  1. On écrit l'en-tête : def tarif(age):.

  2. Premier cas : if age < 12: puis return 5.

  3. Deuxième cas : elif age <= 25: puis return 8. On arrive ici seulement si age >= 12, donc la borne basse est déjà vérifiée.

  4. Dernier cas : else: puis return 12.

  5. Pour 8 ans : tarif(8) renvoie 5. Pour 15 ans : tarif(15) renvoie 8. Pour 40 ans : tarif(40) renvoie 12.

  6. Total : 5 + 8 + 12 = 25 euros.

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

★★☆Environ 12 min

On veut une fonction somme_carres(n) qui renvoie 12+22+⋯+n21^2 + 2^2 + \dots + n^2.

  1. Complète le programme :
def somme_carres(n):
    total = 0
    for k in range(1, n + 1):
        total = ...
    return total
  1. 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
  1. On initialise total à 0 : c'est l'élément neutre de l'addition.

  2. À chaque passage dans la boucle, on remplace ... par total + k ** 2.

  3. Avec n = 5, k prend les valeurs 1, 2, 3, 4, 5.

  4. Le total évolue ainsi : 0, puis 1, puis 5, puis 14, puis 30, puis 55.

  5. La fonction renvoie 55 après la boucle. Le return est 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 : 1+4+9+16+25=551 + 4 + 9 + 16 + 25 = 55.

Exercice 6 Moyenne d'une liste de notes

★★☆Environ 12 min

Une liste contient quatre notes : [12, 15, 9, 14].

  1. Écris une fonction moyenne(liste) qui renvoie la moyenne des valeurs. Tu peux utiliser sum(liste) et len(liste).
  2. 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
  1. Les statistiques portent naturellement sur des listes de nombres, et les fonctions comme la moyenne prennent une liste en paramètre 6.

  2. On écrit def moyenne(liste):.

  3. Dans le corps : return sum(liste) / len(liste).

  4. Pour [12, 15, 9, 14] : sum vaut 12+15+9+14=5012 + 15 + 9 + 14 = 50 et len vaut 4.

  5. 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 ?

★★★Environ 15 min

Une droite dd a pour équation y=2x−5y = 2x - 5. 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.

  1. Écris une fonction sur_droite(x, y) qui renvoie True si le point de coordonnées (x ; y)(x\,;\,y) est sur dd.
  2. On teste la liste de points [(13, 21), (10, 14), (0, -5), (4, 3)]. Combien sont sur la droite dd ?
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
  1. On écrit def sur_droite(x, y): puis return y == 2 * x - 5. L'expression y == 2 * x - 5 vaut déjà True ou False : inutile d'ajouter un if.

  2. Point (13 ; 21) : 2×13−5=212 \times 13 - 5 = 21, égal à y, donc True.

  3. Point (10 ; 14) : 2×10−5=152 \times 10 - 5 = 15, différent de 14, donc False.

  4. Point (0 ; -5) : 2×0−5=−52 \times 0 - 5 = -5, donc True.

  5. Point (4 ; 3) : 2×4−5=32 \times 4 - 5 = 3, donc True.

  6. Trois points sur quatre vérifient l'équation.

3 points appartiennent à la droite dd ; seul (10 ; 14) n'y est pas. Attention à ne pas confondre == (comparaison) et = (affectation).

Exercice 8 Convertir des températures

★★★Environ 15 min

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 F=1,8×C+32F = 1{,}8 \times C + 32.

  1. Écris une fonction en_fahrenheit(c).
  2. Écris une fonction est_fievre(c) qui renvoie True si une température en °C est strictement supérieure à 37,5 (pas besoin de réutiliser la fonction précédente).
  3. 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
  1. On écrit def en_fahrenheit(c): puis return 1.8 * c + 32.

  2. Pour la seconde fonction : def est_fievre(c): puis return c > 37.5. La comparaison renvoie directement un booléen.

  3. Pour c = 37 : on calcule d'abord, à la main, 1,8×37=66,61{,}8 \times 37 = 66{,}6.

  4. On ajoute 32 : 66.6 + 32 = 98.6.

  5. Remarque : est_fievre(37) renvoie False, 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

  1. 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.
  2. Ressources pour l'enseignement des SNT en classe de seconde, Éduscol STI. Consulté le 9 novembre 2026.
  3. Les fonctions, du Python au VBA en passant par Excel, Éduscol STI. Consulté le 9 novembre 2026.
  4. Programmes et ressources en sciences numériques et technologie - voie GT, Éduscol. Consulté le 9 novembre 2026.
  5. Manuel Seconde 2023 - Programmation en Python (pages 206-207), Sesamath. Consulté le 9 novembre 2026.
  6. 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.

Signaler une erreur sur cette page

Je suis en…

Primaire

  • CP Bientôt
  • CE1 Bientôt
  • CE2
  • CM1
  • CM2 Bientôt

Collège

Lycée

Supérieur

  • BTS Bientôt
  • BUT Bientôt
  • Licence Bientôt
  • Prépas Bientôt

Sur cette page