Sciences numériques et technologie · Seconde
Conditions et boucles en Python : exercices de Seconde
Publié le 9 novembre 2026 · Mis à jour le 9 novembre 2026 · Signaler une erreur
L'essentiel
- Une condition (if, elif, else) fait choisir au programme les instructions à exécuter selon qu'un test est vrai ou faux.2
- for … in range() répète des instructions un nombre défini de fois ; while les répète tant qu'une condition reste vérifiée.3
- Avec while, la condition est évaluée avant chaque tour : si elle est fausse dès le départ, le corps ne s'exécute jamais.4
- Une boucle while doit modifier ce qui est testé, sinon la condition d'arrêt n'est jamais atteinte et la boucle est infinie.1
- Pour réussir un exercice : fais un tableau de suivi des variables, tour par tour, avant de donner le résultat.
Comment utiliser ces exercices
Ces exercices te font travailler sur les instructions conditionnelles et les boucles, deux outils qui permettent à un programme de ne pas suivre toujours le même chemin et de ne pas répéter à la main la même ligne. Tu as déjà rencontré les variables et leurs types : on s'en sert ici à chaque ligne. Essaie chaque énoncé sur papier avant de regarder les indices, puis la correction. Si tu as Python sous la main, tape le programme pour vérifier ton résultat, mais commence toujours par prévoir ce qu'il va afficher.
Les exercices
Exercice 1 Majeur ou mineur ?
On considère le programme suivant :
age = 16
if age >= 18:
print("Tu es majeur")
else:
print("Tu es mineur")
print("Fin")
- Qu'affiche ce programme ?
- Qu'affiche-t-il si on remplace la première ligne par
age = 18?
Indice 1
Commence par dire si le test age >= 18 est vrai ou faux.
Indice 2
La dernière ligne print("Fin") n'est pas décalée : elle ne dépend pas du if.
Voir la correction pas à pas
Avec
age = 16, le test16 >= 18est faux. Le bloc duifest ignoré et c'est le bloc duelsequi s'exécute.Le programme affiche donc
Tu es mineur.La ligne
print("Fin")n'est pas indentée : elle s'exécute dans tous les cas. Le programme affiche ensuiteFin.Avec
age = 18, le test18 >= 18est vrai car l'opérateur>=signifie « supérieur ou égal ».3 Le programme afficheTu es majeur, puisFin.
Une condition ne choisit qu'une seule branche. Les lignes placées après le bloc, sans décalage, s'exécutent toujours.
Exercice 2 Somme avec une boucle for
Voici un programme :
s = 0
for i in range(1, 5):
s = s + i
print(s)
Quelle valeur est affichée ?
Indice 1
Écris les valeurs prises par i : range(1, 5) ne va pas jusqu'à 5.
Indice 2
Fais un tableau avec trois colonnes : tour, i, s à la fin du tour.
Voir la correction pas à pas
Avant la boucle,
svaut 0.La boucle
forrépète un nombre défini de fois le bloc.3 Iciiprend les valeurs 1, 2, 3 et 4.Tour 1 :
s = 0 + 1 = 1. Tour 2 :s = 1 + 2 = 3. Tour 3 :s = 3 + 3 = 6. Tour 4 :s = 6 + 4 = 10.Après le dernier tour, la boucle se termine et
print(s)affiche 10.
Le programme calcule . Le print est hors de la boucle : il s'exécute une seule fois, à la fin.
Exercice 3 Doubler jusqu'à dépasser
x = 1
while x < 50:
x = x * 2
print(x)
Quelle valeur est affichée ?
Indice 1
Teste la condition x < 50 avant chaque tour, y compris avant le premier.
Indice 2
Les valeurs successives de x sont des puissances de 2.
Voir la correction pas à pas
Au départ,
x = 1. La condition1 < 50est vraie, donc le bloc s'exécute :xdevient 2.Le programme évalue de nouveau la condition après chaque passage dans le bloc.4
2 < 50:xdevient 4.4 < 50:xdevient 8.8 < 50:xdevient 16.16 < 50:xdevient 32.32 < 50est encore vrai :xdevient 64.Maintenant
64 < 50est faux : la boucle s'arrête etprint(x)affiche 64.
La valeur finale est . Remarque que 64 dépasse 50 : la condition est testée avant de doubler, pas après.
Exercice 4 Mention selon la note
On écrit ce programme pour afficher une mention à partir d'une note sur 20 :
note = 13
if note >= 16:
print("Très bien")
elif note >= 14:
print("Bien")
elif note >= 12:
print("Assez bien")
elif note >= 10:
print("Passable")
else:
print("Insuffisant")
- Qu'affiche le programme pour
note = 13? - Pour
note = 16? - Que se passerait-il si on remplaçait tous les
elifpar desif? Donne la liste des affichages pournote = 13.
Indice 1
Le programme teste les conditions dans l'ordre et s'arrête à la première qui est vraie.
Indice 2
Avec des if indépendants, chaque test est évalué séparément.
Voir la correction pas à pas
Pour 13 :
13 >= 16est faux,13 >= 14est faux,13 >= 12est vrai. Le programme afficheAssez bien. Les tests suivants ne sont pas évalués, carelifn'est examiné que si les précédents ont échoué.Pour 16 :
16 >= 16est vrai dès le premier test. Le programme afficheTrès bien.Avec des
ifséparés etnote = 13,13 >= 16et13 >= 14sont faux, mais13 >= 12est vrai (on afficheAssez bien) et13 >= 10aussi (on affichePassable). Leelsedu dernierifne s'exécute pas.Le programme afficherait donc deux lignes :
Assez bienpuisPassable, ce qui est faux.
elif crée une chaîne exclusive : une seule branche est choisie. Le sens de l'ordre compte : on teste du seuil le plus haut au plus bas.
Exercice 5 Combien de tours ?
n = 100
compteur = 0
while n > 10:
n = n - 15
compteur = compteur + 1
print(compteur)
Quelle valeur est affichée pour compteur ?
Indice 1
Écris la valeur de n à la fin de chaque tour.
Indice 2
La boucle s'arrête quand n > 10 devient faux, donc quand n vaut 10 ou moins.
Voir la correction pas à pas
Au départ,
n = 100etcompteur = 0.Tour 1 :
100 > 10est vrai,n = 85,compteur = 1. Tour 2 :n = 70,compteur = 2. Tour 3 :n = 55,compteur = 3.Tour 4 :
n = 40,compteur = 4. Tour 5 :n = 25,compteur = 5. Tour 6 :n = 10,compteur = 6.Le test
10 > 10est faux (l'inégalité est stricte) : la boucle s'arrête. Le programme affiche 6.
On retrouve le résultat par un calcul : il faut retirer 15 jusqu'à passer de 100 à 10, soit retraits. Attention à l'inégalité stricte : avec n >= 10, il y aurait un tour de plus.
Exercice 6 Somme des multiples de 3
total = 0
for i in range(1, 30):
if i % 3 == 0:
total = total + i
print(total)
L'opération i % 3 donne le reste de la division de i par 3. Quelle valeur est affichée ?
Indice 1
i % 3 == 0 signifie que i est un multiple de 3.
Indice 2
Dresse la liste des multiples de 3 compris entre 1 et 29.
Voir la correction pas à pas
La boucle fait varier
ide 1 à 29. Leiffiltre : on n'ajouteiàtotalque si le test est vrai.3Les valeurs de
iretenues sont 3, 6, 9, 12, 15, 18, 21, 24 et 27. Le nombre 30 n'est pas atteint, carrange(1, 30)s'arrête à 29.On calcule .
Le programme affiche 135.
Ici, la condition est à l'intérieur de la boucle : à chaque tour, le programme décide s'il ajoute ou non la valeur.
Exercice 7 Chasse à la boucle infinie
Un élève écrit ce programme pour afficher les nombres de 1 à 5 :
i = 1
while i <= 5:
print(i)
- Pourquoi ce programme ne s'arrête-t-il jamais ?
- Corrige-le.
- Le programme corrigé affiche-t-il bien 5 ?
Indice 1
Regarde si la valeur de i change dans le bloc.
Indice 2
Une ligne manque dans le bloc, avec le même décalage que print.
Voir la correction pas à pas
La variable
ivaut 1 et ne change jamais dans le bloc. Le testi <= 5reste donc toujours vrai : la condition d'arrêt n'est jamais atteinte, la boucle est infinie.1Pour corriger, on ajoute une ligne qui fait évoluer la variable testée :
i = i + 1, indentée commeprint(i).Programme corrigé :
i = 1, puiswhile i <= 5:, puisprint(i)eti = i + 1dans le bloc.Au tour où
ivaut 5, le test5 <= 5est vrai : 5 est affiché, puisipasse à 6. Le test6 <= 5est faux, la boucle s'arrête. Le programme affiche bien 1, 2, 3, 4, 5.
Règle à vérifier à chaque while : la variable qui figure dans la condition doit être modifiée dans le bloc, dans le bon sens.
Exercice 8 Placement à intérêts
Un capital de 1 000 € augmente de 5 % chaque année. On veut savoir au bout de combien d'années il dépasse ou atteint 1 200 €.
capital = 1000
annees = 0
while capital < 1200:
capital = capital * 1.05
annees = annees + 1
print(annees)
- Calcule le capital à la fin de chaque tour.
- Quelle valeur de
anneesest affichée ?
Indice 1
Une hausse de 5 % revient à multiplier par 1,05.
Indice 2
Arrondis le capital au centime pour comparer à 1 200.
Voir la correction pas à pas
Départ :
capital = 1000,annees = 0. Le test1000 < 1200est vrai.Tour 1 : €,
annees = 1. Tour 2 : €,annees = 2.Tour 3 : €,
annees = 3. Le test1157,63 < 1200est encore vrai.Tour 4 : €,
annees = 4. Le test1215,51 < 1200est faux : la boucle s'arrête.Le programme affiche 4.
On ne connaissait pas à l'avance le nombre de répétitions : c'est le cas typique où while est mieux adapté que for. Un calcul direct confirme : il faut le plus petit entier tel que , soit .
Exercice 9 Écrire un programme complet
Écris un programme Python qui, pour chaque entier n de 1 à 20, affiche :
n est pairsinest pair ;n est impairsinon.
Puis modifie ton programme pour qu'il compte combien de nombres pairs il a rencontrés et affiche ce total à la fin.
Indice 1
Un nombre est pair si le reste de sa division par 2 vaut 0 : n % 2 == 0.
Indice 2
Pour compter, utilise une variable initialisée à 0 avant la boucle et augmentée dans la branche des nombres pairs.
Voir la correction pas à pas
On a besoin de répéter 20 fois une action : le nombre de tours est connu à l'avance, on choisit donc
for n in range(1, 21). Le nombre 21 est exclu, doncnva bien de 1 à 20.Dans la boucle, on place un
if n % 2 == 0:qui affichen est pair, puis unelse:qui affichen est impair.3Pour compter, on écrit
compteur = 0avant la boucle, puis on ajoutecompteur = compteur + 1dans le bloc duif.Après la boucle (ligne non indentée), on écrit
print(compteur). Le programme affiche 10, car il y a dix nombres pairs entre 1 et 20 : 2, 4, …, 20.
Un programme complet combine les trois éléments : une variable initialisée avant la boucle, une boucle qui parcourt les valeurs, une condition qui décide quoi faire de chacune. Ce schéma sert pour tous les problèmes de comptage et de tri.
Les questions qu'on se pose
Comment choisir entre for et while ?
Que faire quand mon programme tourne sans s'arrêter ?
Interromps-le dans ton éditeur, puis regarde la condition du while. Pose-toi deux questions : la variable testée est-elle modifiée dans le bloc ? Évolue-t-elle dans le bon sens ? Il faut que la condition d'arrêt puisse un jour être atteinte.1 Fais aussi un tableau de suivi pour les trois ou quatre premiers tours.
Un while peut-il ne jamais s'exécuter ?
Oui. La condition est évaluée avant le premier passage : si elle est fausse dès le départ, le bloc est ignoré.4 Par exemple, avec x = 100 et while x < 50:, rien ne se passe.
Sources
- Ressources pédagogiques Éduscol - Programmation en Python, Éduscol. Consulté le 9 novembre 2026.
- Instructions conditionnelles et itératives, Éduscol STI. Consulté le 9 novembre 2026.
- Mémento Python SNT - Premiers pas, Académie de Lyon. Consulté le 9 novembre 2026.
- Boucle while, Wikipédia. Consulté le 9 novembre 2026.
- Invariant de boucle, 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.