Mathématiques · Seconde
Fonctions en Python : exercices corrigés de Seconde
Publié le 9 novembre 2026 · Mis à jour le 9 novembre 2026 · Signaler une erreur
L'essentiel
- Une fonction Python se définit avec def, un nom, des paramètres entre parenthèses, puis un bloc indenté.
- return renvoie une valeur à celui qui appelle la fonction ; print affiche seulement quelque chose à l'écran.
- Une fonction sans return renvoie la valeur spéciale None.
- Une fonction peut contenir un if (cas différents) ou un for (répétitions) avant de renvoyer son résultat.
- Pour vérifier une fonction, teste-la à la main sur une valeur simple, puis compare avec le résultat du programme.
Comment utiliser ces exercices
Ces exercices te font manipuler des fonctions en Python, du plus simple (écrire une formule) jusqu'à des fonctions qui contiennent des conditions et des boucles. Le langage retenu au lycée général et technologique est Python.2 Il est donc normal de t'entraîner avec lui, y compris sur une calculatrice compatible : les modèles destinés aux lycéens fonctionnent avec Python 3.4
Pour chaque exercice, cherche d'abord seul·e, sur papier, avant de regarder les indices. Ensuite seulement, déroule la correction étape par étape. Si tu as un ordinateur ou une calculatrice, recopie le programme et vérifie que ton résultat à la main est bien celui que Python affiche.
Les exercices
Exercice 1 Écrire une fonction affine
On considère la fonction définie par .
- Écris en Python une fonction
fqui prend un nombrexet renvoie . - Quelle valeur renvoie l'appel
f(4)?
Indice 1
Le paramètre de la fonction s'appelle x ; la formule s'écrit avec * pour la multiplication.
Indice 2
N'oublie pas return : sans lui, la fonction ne renvoie pas le résultat du calcul.
Voir la correction pas à pas
On commence la définition par
def f(x):. Le motdefannonce la fonction,fest son nom,xson paramètre.Sur la ligne suivante, indentée, on écrit
return 3*x + 2. Le signe*est obligatoire : Python ne comprend pas3x.Le programme complet est donc :
def f(x): return 3*x + 2Pour
f(4), Python remplacexpar 4 : .Vérification avec une autre valeur :
f(0)donne , ce qui correspond bien à l'ordonnée à l'origine de la droite qui représente .
L'appel f(4) renvoie 14. Une fonction Python traduit directement la formule mathématique : le paramètre joue le rôle de et return donne l'image.
Exercice 2 Deux paramètres : l'aire d'un rectangle
- Écris une fonction
airequi prend la longueurLet la largeurld'un rectangle (en cm) et renvoie son aire. - Quelle est l'aire, en cm², renvoyée par
aire(7.5, 4)?
Indice 1
Une fonction peut avoir plusieurs paramètres, séparés par des virgules.
Indice 2
Dans un programme, un nombre décimal s'écrit avec un point : 7.5.
Voir la correction pas à pas
On déclare deux paramètres :
def aire(L, l):.L'aire d'un rectangle est le produit de la longueur par la largeur, donc
return L * l.Programme complet :
def aire(L, l): return L * lPour l'appel
aire(7.5, 4), Python prendL = 7.5puisl = 4, dans l'ordre où les valeurs sont données.Calcul : . Comme les longueurs sont en cm, l'aire est en cm².
L'appel renvoie 30, soit 30 cm². L'ordre des valeurs dans l'appel correspond à l'ordre des paramètres dans la définition.
Exercice 3 Lire un programme : return et print
On exécute ce programme :
def g(x):
return x**2 - 1
print(g(5))
- Que signifie
x**2en Python ? - Quel nombre le programme affiche-t-il ?
- Que se passerait-il si on avait écrit
g(5)seul sur la dernière ligne, sansprint, dans un fichier de programme ?
Indice 1
** est l'opérateur de puissance.
Indice 2
Dans un programme enregistré, une valeur renvoyée n'apparaît à l'écran que si on demande de l'afficher.
Voir la correction pas à pas
Le symbole
**désigne l'élévation à la puissance :x**2vaut .L'appel
g(5)remplacexpar 5 : . La fonction renvoie 24 grâce àreturn.La fonction
print, qui prend ses arguments entre parenthèses en Python 3,4 affiche cette valeur : le programme montre 24.Sans
print, la fonction calcule bien 24, mais rien ne s'afficherait à l'écran dans un fichier de programme : la valeur est renvoyée puis perdue.
Le programme affiche 24. Retiens la différence : return fait sortir une valeur de la fonction, print la montre à l'utilisateur.
Exercice 4 Une fonction qui ne renvoie rien
On considère :
def h(x):
print(x + 1)
y = h(3)
print(y)
- Qu'affiche le programme, ligne après ligne ?
- Pourquoi
yne contient-il pas 4 ? - Comment corriger
hpour queyvaille 4 ?
Indice 1
Distingue ce que h affiche pendant son exécution et ce qu'elle renvoie.
Indice 2
Une fonction sans return renvoie la valeur spéciale None.
Voir la correction pas à pas
À la ligne
y = h(3), Python exécuteh(3). Dans la fonction,print(x + 1)affiche 4.La fonction
hne contient pas dereturn: elle ne renvoie rien d'utile. Python lui fait alors renvoyerNone, qui est rangé dansy. Une fonction peut en effet ne rien renvoyer.1La dernière ligne
print(y)affiche doncNone. Le programme montre dans l'ordre :4puisNone.Pour que
yvaille 4, on remplaceprintparreturn:def h(x): return x + 1Avec cette version,
y = h(3)range 4 dansy, etprint(y)affiche 4.
Le 4 affiché la première fois venait du print dans la fonction, pas d'une valeur récupérée. Pour réutiliser un résultat dans la suite d'un calcul, il faut le renvoyer.
Exercice 5 Une fonction avec condition : le tarif dégressif
Une salle de cinéma vend ses places 8 € l'unité. À partir de 5 places achetées en une fois, chaque place coûte 6 €.
- Écris une fonction
prix(n)qui renvoie le prix total denplaces. - Calcule
prix(4)puisprix(7). - Quel est le prix à payer, en euros, pour 7 places ?
Indice 1
Il y a deux cas : moins de 5 places, ou 5 places et plus. Utilise if et else.
Indice 2
Le test « 5 places ou plus » s'écrit n >= 5.
Voir la correction pas à pas
On identifie la condition : le tarif change quand .
On écrit :
def prix(n): if n >= 5: return 6 * n else: return 8 * nPour
prix(4): le test4 >= 5est faux, donc Python exécute leelseet renvoie .Pour
prix(7): le test7 >= 5est vrai, donc Python renvoie .On remarque que 7 places (42 €) coûtent plus que 4 places (32 €), ce qui est cohérent, mais que 5 places coûtent 30 €, moins que 4 places : le tarif dégressif a un effet de seuil.
Pour 7 places, on paie 42 €. Dans une fonction, le if choisit la formule à appliquer ; un seul return est exécuté, celui du cas qui convient.
Exercice 6 Comparer deux offres
Une salle de sport propose deux formules :
- Offre A : 40 € d'abonnement, puis 5 € par séance ;
- Offre B : 9 € par séance, sans abonnement.
- Écris une fonction
economie(n)qui renvoie, pournséances, le prix de B moins le prix de A. - Quelle économie, en euros, l'offre A permet-elle pour 12 séances ?
- Que représente une valeur négative renvoyée par
economie?
Indice 1
Le prix de A pour séances est ; celui de B est .
Indice 2
Écris d'abord les deux prix, puis soustrais-les dans le bon ordre.
Voir la correction pas à pas
On exprime les deux prix en fonction du nombre de séances : et .
La fonction renvoie la différence « B moins A » :
def economie(n): prix_A = 40 + 5 * n prix_B = 9 * n return prix_B - prix_APour
economie(12): et .La différence vaut .
Si le résultat est négatif, B coûte moins cher que A : par exemple pour 5 séances, et , donc
economie(5)renvoie .
Avec 12 séances, l'offre A fait économiser 8 €. Une valeur négative signifie que l'offre B est la moins chère.
Exercice 7 Une fonction avec boucle : somme d'entiers
On considère :
def somme(n):
s = 0
for k in range(1, n + 1):
s = s + k
return s
- Que contient
sà la fin de chaque tour de boucle pourn = 4? - Que calcule cette fonction ?
- Quelle valeur renvoie
somme(10)?
Indice 1
range(1, n + 1) fait prendre à k les valeurs 1, 2, ..., n (la valeur n + 1 est exclue).
Indice 2
Fais un tableau avec les colonnes k et s pour suivre l'évolution.
Voir la correction pas à pas
Au départ,
svaut 0.Pour
n = 4,range(1, 5)donnek= 1, 2, 3, 4. Tour 1 : . Tour 2 : . Tour 3 : . Tour 4 : .Après la boucle,
return srenvoie 10 : la fonction calcule la somme .Pour
n = 10,kva de 1 à 10 etsprend successivement les valeurs 1, 3, 6, 10, 15, 21, 28, 36, 45, 55.On peut le contrôler : .
somme(10) renvoie 55. Dans une fonction, une variable comme s sert d'accumulateur : on l'initialise avant la boucle, on la modifie à chaque tour, et on la renvoie à la fin.
Exercice 8 Une fonction définie par morceaux
On considère :
def f(x):
if x < 0:
return -2 * x + 1
else:
return x ** 2
- Calcule
f(-3)etf(3). - Quelle est la valeur de
f(-3) + f(3)? - Que renvoie
f(0)? Pourquoi ?
Indice 1
Pour chaque appel, commence par décider si le test x < 0 est vrai ou faux.
Indice 2
Le cas x = 0 ne vérifie pas x < 0 : il passe par le else.
Voir la correction pas à pas
Pour
f(-3): le test-3 < 0est vrai, donc Python renvoie .Pour
f(3): le test3 < 0est faux, donc on passe auelseet Python renvoie .On additionne : .
Pour
f(0): le test0 < 0est faux (0 n'est pas strictement inférieur à 0), donc c'est leelsequi s'applique et la fonction renvoie .
f(-3) + f(3) vaut 16. Une fonction définie par morceaux se programme avec un if : on vérifie toujours dans quel cas tombe chaque valeur, surtout aux bornes.
Exercice 9 Chercher des antécédents par balayage
On veut savoir pour combien d'entiers compris entre 0 et 10 (inclus) on a .
- Écris une fonction
f(x)qui renvoie . - Écris une fonction
compter()qui parcourt les entiers de 0 à 10 et renvoie le nombre de ceux qui annulentf. - Quel nombre
compter()renvoie-t-elle ?
Indice 1
Pour parcourir les entiers de 0 à 10 inclus, utilise range(0, 11).
Indice 2
Utilise un compteur initialisé à 0, que tu augmentes de 1 chaque fois que f(x) == 0. Le test d'égalité s'écrit avec deux signes =.
Voir la correction pas à pas
On définit d'abord la fonction :
def f(x): return x**2 - 5*x + 6On écrit la fonction de comptage :
def compter(): c = 0 for x in range(0, 11): if f(x) == 0: c = c + 1 return cOn teste à la main quelques valeurs : , , , , .
Pour , la valeur est strictement positive, donc elle ne s'annule plus.
Seuls et annulent la fonction : le compteur finit à 2.
compter() renvoie 2. Cette méthode de balayage teste toutes les valeurs possibles une à une ; elle donne les solutions entières d'un intervalle, mais ne détecte pas les solutions non entières.
Les questions qu'on se pose
Quelle est la différence entre return et print ?
return renvoie une valeur : la fonction la transmet à l'endroit où elle a été appelée, et on peut la ranger dans une variable ou s'en servir dans un autre calcul. print se contente d'afficher un texte ou un nombre à l'écran, sans le transmettre. Une fonction qui n'a que des print ne renvoie rien d'utilisable.1 Pour réutiliser un résultat, utilise return.
Pourquoi mon programme affiche-t-il une erreur d'indentation ?
En Python, le décalage des lignes vers la droite indique quelles instructions font partie de la fonction, du if ou de la boucle. Si une ligne du bloc n'est pas alignée comme ses voisines, Python ne sait plus où le bloc commence ou finit. Vérifie que toutes les lignes d'un même bloc ont le même décalage, et que la ligne qui se termine par deux-points (def ...:, if ...:, for ...:) est bien suivie d'une ligne décalée.
Comment vérifier qu'une fonction est correcte ?
Choisis une valeur pour laquelle tu connais déjà le résultat (par exemple ou ), calcule-le à la main, puis appelle la fonction avec cette valeur et compare. Teste aussi des cas limites : une valeur juste avant et juste après un seuil dans un if, ou une valeur très petite pour une boucle. Si les deux résultats diffèrent, relis la formule, l'ordre des paramètres et la présence du return.
Sources
- Ressource Éduscol - Algorithmique et programmation (document d'accompagnement), Éduscol - Ministère de l'Éducation nationale. Consulté le 9 novembre 2026.
- Ressource Éduscol - Fonctions et programmation, Éduscol - Ministère de l'Éducation nationale. Consulté le 9 novembre 2026.
- Document ressource fonctions - IREM, IREM - Université de Lille. Consulté le 9 novembre 2026.
- Python (langage), Wikipédia. 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.