Mathématiques · Seconde
Instructions conditionnelles : exercices corrigés de 2de
Publié le 9 novembre 2026 · Mis à jour le 9 novembre 2026 · Signaler une erreur
L'essentiel
- Une instruction conditionnelle exécute des actions différentes selon qu'une condition booléenne est vraie ou fausse 4.
- Le bloc « sinon » est facultatif : sans lui, si la condition est fausse, le programme passe directement à la suite 4.
- Avec « sinon si », seules les instructions de la première condition vraie s'exécutent, toutes les autres sont ignorées 4.
- Pour réussir : repère la condition, fais-la évaluer à la main (vrai ou faux), puis suis la bonne branche.
- Une condition composée s'écrit avec « et » (les deux doivent être vraies) ou « ou » (une seule suffit) 3.
Comment utiliser ces exercices
Ces exercices t'entraînent à lire, exécuter à la main et écrire des programmes qui choisissent ce qu'ils font. Ce sont des notions déjà rencontrées au collège : variables, séquences d'instructions, instructions conditionnelles 1. En seconde, on les retrouve en Python, avec l'objectif de concevoir des algorithmes simples et de les programmer 1.
Les exercices sont classés par difficulté croissante. Cherche d'abord seul, avec une feuille et un crayon : dérouler un programme à la main est la meilleure façon de comprendre ce que fait l'ordinateur. Les indices sont là pour te débloquer, la correction pour vérifier ta démarche.
Les exercices
Les exercices
Exercice 1 Lire un programme à deux branches
On considère le programme suivant :
x = 7
if x > 5:
y = x * 2
else:
y = x + 1
print(y)
- La condition
x > 5est-elle vraie ou fausse au moment du test ? - Quelle valeur le programme affiche-t-il ?
- Que s'afficherait-il si on remplaçait la première ligne par
x = 3?
Indice 1
Remplace x par sa valeur dans la condition, puis décide si l'inégalité est vraie.
Indice 2
Une seule des deux affectations est exécutée.
Voir la correction pas à pas
Au départ,
xvaut 7. La conditionx > 5devient7 > 5.Comme 7 est bien plus grand que 5, la condition est vraie : on exécute le bloc du
if, et leelseest ignoré.On calcule
y = 7 * 2, soit .L'instruction
print(y)affiche donc 14.Avec
x = 3, la condition3 > 5est fausse : on exécute leelse, donc et le programme affiche 4.
Le programme affiche 14. Retiens le réflexe : on évalue d'abord la condition avec les valeurs actuelles des variables, puis on suit une seule branche.
Exercice 2 Conditions composées avec et, ou
On considère le programme suivant :
a = 12
b = 5
if a > 10 and b > 10:
r = a + b
elif a > 10 or b > 10:
r = a - b
else:
r = a * b
print(r)
- Évalue
a > 10etb > 10. - La première condition (avec
and) est-elle vraie ? - Quelle valeur de
rest affichée ?
Indice 1
Avec and, les deux comparaisons doivent être vraies en même temps 3.
Indice 2
Si la première condition est fausse, on teste la suivante ; avec or, une seule comparaison vraie suffit 3.
Voir la correction pas à pas
Avec , la comparaison
a > 10est vraie. Avec , la comparaisonb > 10est fausse.Le
andexige deux comparaisons vraies : ici l'une est fausse, donc la première condition est fausse. Le blocr = a + best ignoré.On passe au
elif: la conditiona > 10 or b > 10est vraie, car l'une de ses deux comparaisons l'est.On exécute
r = a - b, soit .Le bloc
elsen'est pas exécuté : dès qu'une condition vraie a été trouvée, les suivantes sont ignorées 4. Le programme affiche 7.
Le programme affiche 7. Pour un and, cherche une comparaison fausse : une seule suffit à rendre l'ensemble faux. Pour un or, cherche une comparaison vraie.
Exercice 3 Un tarif selon l'âge
Une salle de cinéma applique le tarif suivant : 5 € pour les moins de 12 ans, 7 € pour les personnes de 12 ans à 17 ans inclus, 10 € à partir de 18 ans.
- Complète le programme ci-dessous en écrivant les conditions manquantes :
age = int(input())
if ...:
prix = 5
elif ...:
prix = 7
else:
prix = 10
- Une famille compte quatre personnes de 8 ans, 15 ans, 40 ans et 42 ans. Quel est le prix total des quatre places, en euros ?
Indice 1
Dans une chaîne if / elif, quand tu arrives au elif, la première condition est déjà fausse : tu n'as pas à répéter age >= 12.
Indice 2
Applique le programme à chaque âge séparément, puis additionne.
Voir la correction pas à pas
Première condition :
age < 12(prix 5 €).Deuxième condition :
age < 18. Elle n'est testée que siage < 12est fausse, donc on sait déjà queage >= 12. Elle couvre bien les âges de 12 à 17.Le
elsecouvre tous les autres cas, soit 18 ans et plus, au prix de 10 €.Pour 8 ans :
8 < 12est vraie, prix 5 €. Pour 15 ans :15 < 12fausse,15 < 18vraie, prix 7 €.Pour 40 ans et 42 ans : les deux premières conditions sont fausses, on arrive au
else, prix 10 € chacun.Total : euros.
Les conditions à écrire sont age < 12 puis age < 18, et la famille paie 32 €. L'ordre des tests compte : c'est lui qui permet de ne pas écrire de condition compliquée.
Exercice 4 Le plus grand de trois nombres
On veut un programme qui donne le plus grand de trois nombres a, b et c.
a = 17
b = 23
c = 21
if a >= b and a >= c:
m = a
elif b >= a and b >= c:
m = b
else:
m = c
print(m)
- Déroule le programme à la main : quelle valeur de
mest affichée ? - Pourquoi le
elsen'a-t-il pas besoin de condition ? - Quelle valeur serait affichée avec
a = 30,b = 12,c = 30?
Indice 1
Évalue les deux comparaisons de la première condition l'une après l'autre.
Indice 2
Si a et b ne sont pas les plus grands, il ne reste qu'un candidat.
Voir la correction pas à pas
Avec , , :
a >= bdevient17 >= 23, qui est fausse. La première condition (avecand) est donc fausse.On teste le
elif:b >= aest vraie () etb >= cest vraie (). Les deux sont vraies, donc la condition est vraie.On exécute
m = b, donc : le programme affiche 23.Le
elsene demande aucune condition : si nianibne sont les plus grands, c'est forcémentc.Avec , , :
a >= beta >= csont toutes deux vraies, on exécutem = a, soit 30. Le signe>=(et non>) permet de traiter correctement l'égalité deaetc.
Le programme affiche 23. Le dernier cas d'une chaîne n'a pas besoin de condition quand les précédents ont éliminé toutes les autres possibilités.
Exercice 5 Une remise sous conditions
Une boutique en ligne applique ces règles : si le total du panier atteint au moins 100 €, une remise de 10 % est appliquée ; ensuite, si le client est membre, 5 € sont encore retirés.
total = 120
membre = True
if total >= 100:
total = total * 0.9
if membre:
total = total - 5
print(total)
- Les deux structures
ifsont-elles liées (commeif/elif) ou indépendantes ? - Quel prix final est affiché, en euros ?
- Que se passerait-il pour un panier de 80 € d'un client membre ?
Indice 1
Deux if écrits l'un après l'autre sont évalués tous les deux.
Indice 2
Pour 10 %, on multiplie par .
Voir la correction pas à pas
Le second
ifn'est pas précédé d'unelif: il forme une structure indépendante, évaluée dans tous les cas.Premier test :
120 >= 100est vrai, donctotaldevient .Second test :
membrevautTrue, la condition est vraie, donctotaldevient .Le programme affiche 103.0 : la multiplication par 0.9 donne un nombre décimal (flottant), le prix vaut donc 103 €.
Pour un panier de 80 € :
80 >= 100est faux, aucune remise de 10 %. Le client étant membre, on retire 5 € : le programme affiche 75.
Le prix final est de 103 €. Deux if successifs peuvent s'enchaîner, alors qu'une chaîne if / elif n'exécute qu'un seul bloc. Choisir entre les deux dépend de la situation décrite.
Exercice 6 Enchaîner plusieurs étapes conditionnelles
Voici une étape de calcul appliquée à un entier n :
if n % 2 == 0:
n = n // 2
else:
n = 3 * n + 1
L'opération n % 2 donne le reste de la division euclidienne de n par 2, et n // 2 donne le quotient entier.
- Que signifie la condition
n % 2 == 0? - On part de
n = 27et on applique cette étape trois fois de suite. Donne les valeurs successives den. - Quelle est la valeur de
naprès la troisième étape ?
Indice 1
Un entier est pair quand son reste dans la division par 2 est nul.
Indice 2
À chaque étape, teste d'abord la parité de la valeur actuelle de n, pas celle de départ.
Voir la correction pas à pas
La condition
n % 2 == 0est vraie quand le reste de la division par 2 est nul, c'est-à-dire quandnest pair.Étape 1 : est impair (reste 1). On exécute le
else: .Étape 2 : est pair (reste 0). On exécute le
if: .Étape 3 : est impair. On exécute le
else: .Les valeurs successives sont donc 82, 41, puis 124.
Après la troisième étape, n vaut 124. Il faut réévaluer la condition à chaque passage avec la valeur la plus récente : la parité change d'une étape à l'autre. Ce type de programme devient très puissant quand on le répète automatiquement avec une boucle, notion qui suit celle-ci.
Les questions qu'on se pose
Quelle différence entre plusieurs « if » à la suite et une chaîne « if / elif / else » ?
Dans une chaîne if / elif / else, un seul bloc s'exécute : celui qui suit la première condition vraie, les autres sont ignorés 4. Avec plusieurs if indépendants, chaque condition est testée séparément, et plusieurs blocs peuvent donc s'exécuter, comme dans l'exercice de la remise. Pose-toi la question : les cas s'excluent-ils (chaîne) ou se cumulent-ils (if séparés) ?
Faut-il toujours écrire un « else » ?
Non, le bloc « sinon » est facultatif 4. Sans lui, quand la condition est fausse, le programme continue simplement après la structure. On l'ajoute quand il faut une action dans le cas contraire, par exemple un prix par défaut ou un message d'erreur.
Sources
Programme visé : Bulletin officiel n°29 du 21 juillet 2016 — Mathématiques, classe de seconde générale et technologique · Ministère de l'Éducation nationale (education.gouv.fr)
- Bulletin officiel n°29 du 21 juillet 2016 — Mathématiques, classe de seconde générale et technologique, Ministère de l'Éducation nationale (education.gouv.fr). Consulté le 9 novembre 2026.
- Ressources Éduscol — Algorithmique et programmation (Seconde), eduscol.education.fr. Consulté le 9 novembre 2026.
- Instructions conditionnelles et itératives — Ressources pédagogiques, eduscol.education.fr (STI). Consulté le 9 novembre 2026.
- Instruction conditionnelle (programmation), 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.