Aller au contenu

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

★☆☆Environ 5 min

On considère le programme suivant :

x = 7
if x > 5:
    y = x * 2
else:
    y = x + 1
print(y)
  1. La condition x > 5 est-elle vraie ou fausse au moment du test ?
  2. Quelle valeur le programme affiche-t-il ?
  3. 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
  1. Au départ, x vaut 7. La condition x > 5 devient 7 > 5.

  2. Comme 7 est bien plus grand que 5, la condition est vraie : on exécute le bloc du if, et le else est ignoré.

  3. On calcule y = 7 * 2, soit y=14y = 14.

  4. L'instruction print(y) affiche donc 14.

  5. Avec x = 3, la condition 3 > 5 est fausse : on exécute le else, donc y=3+1=4y = 3 + 1 = 4 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

★☆☆Environ 8 min

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)
  1. Évalue a > 10 et b > 10.
  2. La première condition (avec and) est-elle vraie ?
  3. Quelle valeur de r est 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
  1. Avec a=12a = 12, la comparaison a > 10 est vraie. Avec b=5b = 5, la comparaison b > 10 est fausse.

  2. Le and exige deux comparaisons vraies : ici l'une est fausse, donc la première condition est fausse. Le bloc r = a + b est ignoré.

  3. On passe au elif : la condition a > 10 or b > 10 est vraie, car l'une de ses deux comparaisons l'est.

  4. On exécute r = a - b, soit r=12−5=7r = 12 - 5 = 7.

  5. Le bloc else n'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

★★☆Environ 12 min

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.

  1. Complète le programme ci-dessous en écrivant les conditions manquantes :
age = int(input())
if ...:
    prix = 5
elif ...:
    prix = 7
else:
    prix = 10
  1. 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
  1. Première condition : age < 12 (prix 5 €).

  2. Deuxième condition : age < 18. Elle n'est testée que si age < 12 est fausse, donc on sait déjà que age >= 12. Elle couvre bien les âges de 12 à 17.

  3. Le else couvre tous les autres cas, soit 18 ans et plus, au prix de 10 €.

  4. Pour 8 ans : 8 < 12 est vraie, prix 5 €. Pour 15 ans : 15 < 12 fausse, 15 < 18 vraie, prix 7 €.

  5. Pour 40 ans et 42 ans : les deux premières conditions sont fausses, on arrive au else, prix 10 € chacun.

  6. Total : 5+7+10+10=325 + 7 + 10 + 10 = 32 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

★★☆Environ 12 min

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)
  1. Déroule le programme à la main : quelle valeur de m est affichée ?
  2. Pourquoi le else n'a-t-il pas besoin de condition ?
  3. 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
  1. Avec a=17a = 17, b=23b = 23, c=21c = 21 : a >= b devient 17 >= 23, qui est fausse. La première condition (avec and) est donc fausse.

  2. On teste le elif : b >= a est vraie (23≥1723 \geq 17) et b >= c est vraie (23≥2123 \geq 21). Les deux sont vraies, donc la condition est vraie.

  3. On exécute m = b, donc m=23m = 23 : le programme affiche 23.

  4. Le else ne demande aucune condition : si ni a ni b ne sont les plus grands, c'est forcément c.

  5. Avec a=30a = 30, b=12b = 12, c=30c = 30 : a >= b et a >= c sont toutes deux vraies, on exécute m = a, soit 30. Le signe >= (et non >) permet de traiter correctement l'égalité de a et c.

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

★★☆Environ 15 min

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)
  1. Les deux structures if sont-elles liées (comme if / elif) ou indépendantes ?
  2. Quel prix final est affiché, en euros ?
  3. 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 0,90{,}9.

Voir la correction pas à pas
  1. Le second if n'est pas précédé d'un elif : il forme une structure indépendante, évaluée dans tous les cas.

  2. Premier test : 120 >= 100 est vrai, donc total devient 120×0,9=108120 \times 0{,}9 = 108.

  3. Second test : membre vaut True, la condition est vraie, donc total devient 108−5=103108 - 5 = 103.

  4. Le programme affiche 103.0 : la multiplication par 0.9 donne un nombre décimal (flottant), le prix vaut donc 103 €.

  5. Pour un panier de 80 € : 80 >= 100 est 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

★★★Environ 20 min

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.

  1. Que signifie la condition n % 2 == 0 ?
  2. On part de n = 27 et on applique cette étape trois fois de suite. Donne les valeurs successives de n.
  3. Quelle est la valeur de n aprè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
  1. La condition n % 2 == 0 est vraie quand le reste de la division par 2 est nul, c'est-à-dire quand n est pair.

  2. Étape 1 : n=27n = 27 est impair (reste 1). On exécute le else : n=3×27+1=82n = 3 \times 27 + 1 = 82.

  3. Étape 2 : n=82n = 82 est pair (reste 0). On exécute le if : n=82÷2=41n = 82 \div 2 = 41.

  4. Étape 3 : n=41n = 41 est impair. On exécute le else : n=3×41+1=124n = 3 \times 41 + 1 = 124.

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

  1. 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.
  2. Ressources Éduscol — Algorithmique et programmation (Seconde), eduscol.education.fr. Consulté le 9 novembre 2026.
  3. Instructions conditionnelles et itératives — Ressources pédagogiques, eduscol.education.fr (STI). Consulté le 9 novembre 2026.
  4. 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.

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