Aller au contenu

Sciences numériques et technologie · Seconde

Conditions et boucles en Python : cours de Seconde (SNT)

Publié le 9 novembre 2026 · Mis à jour le 9 novembre 2026 · Signaler une erreur

L'essentiel

  • Une instruction conditionnelle (if, elif, else) fait choisir au programme les instructions à exécuter selon une condition.2
  • Une condition est une expression qui est vraie ou fausse, construite avec des comparaisons (<, >, <=, >=, ==, !=) et les mots and, or, not.
  • Une boucle for répète un nombre de fois connu à l'avance ; une boucle while répète tant que sa condition est vraie.3
  • Avec while, la condition est testée avant chaque tour : si elle est fausse dès le départ, le bloc ne s'exécute jamais.4
  • Une boucle dont la condition d'arrêt n'est jamais atteinte est une boucle infinie : le bloc doit faire évoluer la condition pour qu'elle puisse devenir fausse.1

Pourquoi ces deux outils changent tout

Jusqu'ici, tes programmes ressemblaient à une recette lue de haut en bas : une instruction après l'autre, toujours dans le même ordre, toujours les mêmes. Ce genre de programme est utile, mais limité. Un jeu vidéo, une application météo ou un distributeur de billets doivent réagir : faire une chose si le joueur a gagné, une autre s'il a perdu, et recommencer tant que la partie n'est pas finie.

Pour cela, il te faut deux outils. Le premier est la condition : le programme choisit les instructions à exécuter selon une situation.2 Le second est la boucle : le programme répète une séquence d'instructions, par exemple jusqu'à ce qu'un événement se produise.2 Avec les variables que tu connais déjà, ces trois ingrédients (variables, conditions, boucles) suffisent à écrire une grande partie des programmes que tu rencontreras en Seconde.

Dans ce cours, tu vas apprendre :

  • à écrire une condition qui est vraie ou fausse ;
  • à faire choisir ton programme avec if, elif et else ;
  • à répéter un nombre de fois connu avec for ;
  • à répéter tant qu'une condition est vraie avec while ;
  • à repérer et corriger les erreurs classiques, dont la boucle infinie.

Les conditions : des expressions vraies ou fausses

Les comparaisons se font avec les opérateurs suivants. Les symboles <= et >= signifient « inférieur ou égal » et « supérieur ou égal ».3

Symbole Sens Exemple Résultat si x = 7
< strictement inférieur x < 10 vrai
> strictement supérieur x > 10 faux
<= inférieur ou égal x <= 7 vrai
>= supérieur ou égal x >= 8 faux
== égal à x == 7 vrai
!= différent de x != 7 faux

Tu as repéré le piège : pour tester une égalité, on écrit deux signes égal (==). Un seul signe égal (=) sert à affecter une valeur à une variable. Écrire x = 7 range 7 dans x ; écrire x == 7 pose la question « x vaut-il 7 ? ».

Combiner plusieurs conditions

Parfois une seule comparaison ne suffit pas. Tu peux en assembler plusieurs avec trois mots :

  • and (« et ») : les deux conditions doivent être vraies ;2
  • or (« ou ») : au moins une des deux conditions doit être vraie ;2
  • not (« non ») : le résultat est inversé, donc not (x > 3) est vrai quand la condition x > 3 est fausse.2

Exemple : pour savoir si un nombre n est compris entre 10 et 20 inclus, on écrit n >= 10 and n <= 20. Les deux comparaisons doivent être vraies en même temps. Pour savoir si une note est hors de la plage normale, on écrit note < 0 or note > 20 : une seule des deux suffit.

L'instruction conditionnelle : if, elif, else

Chaque mot-clé a un rôle précis :

  • if : exécute des instructions lorsqu'une condition est vérifiée ;3
  • else : exécute d'autres instructions lorsque la condition n'est pas vérifiée ;3
  • elif : ajoute une condition supplémentaire à tester, avec ses propres instructions.3

La syntaxe

age = 17
if age >= 18:
    print("Majeur")
else:
    print("Mineur")

Regarde bien trois détails, car ce sont eux qui font échouer les programmes des débutants :

  1. la ligne if se termine par deux-points : ;
  2. les instructions qui dépendent de la condition sont décalées vers la droite (l'indentation, en général quatre espaces) ;
  3. le retour au bord gauche marque la fin du bloc.

L'indentation n'est pas décorative en Python : c'est elle qui indique au programme quelles lignes appartiennent à la condition.

Plusieurs cas avec elif

Quand il y a plus de deux situations, on enchaîne les tests :

note = 13
if note >= 16:
    mention = "Très bien"
elif note >= 14:
    mention = "Bien"
elif note >= 12:
    mention = "Assez bien"
else:
    mention = "Pas de mention"
print(mention)

Le programme teste les conditions dans l'ordre, de haut en bas. Dès qu'une condition est vraie, il exécute son bloc puis saute tout le reste de la chaîne. Ici, avec note = 13, la première condition est fausse, la deuxième aussi, la troisième est vraie : le programme affiche « Assez bien ». Le else final ne sert que si aucune des conditions précédentes n'est vraie.

La boucle for : répéter un nombre de fois connu

Il existe deux familles de boucles : les boucles bornées, où l'on sait à l'avance combien de tours auront lieu (for), et les boucles non bornées, où l'on s'arrête quand une condition d'arrêt est remplie (while).1 On utilise for ... in range() pour répéter des instructions un nombre défini de fois.3

La fonction range

range fabrique une suite d'entiers que la boucle parcourt un par un :

  • range(5) donne 0, 1, 2, 3, 4 (cinq valeurs, on part de 0 et on s'arrête avant 5) ;
  • range(2, 6) donne 2, 3, 4, 5 (on part de 2, on s'arrête avant 6) ;
  • range(0, 10, 3) donne 0, 3, 6, 9 (le troisième nombre est le pas).

La borne de fin est toujours exclue. C'est la source d'erreur la plus fréquente : range(1, 5) ne contient pas 5.

Un premier exemple

for i in range(4):
    print("Tour numéro", i)

Le programme affiche quatre lignes : tour 0, tour 1, tour 2, tour 3. La variable i prend successivement chaque valeur de la suite ; on l'appelle la variable de boucle. Elle est créée et modifiée automatiquement : tu n'as pas à écrire i = i + 1.

Mélanger boucle et condition

Un bloc de boucle peut contenir un if. Pour compter les multiples de 3 entre 1 et 20 :

compteur = 0
for n in range(1, 21):
    if n % 3 == 0:
        compteur = compteur + 1
print(compteur)

L'opération n % 3 donne le reste de la division de n par 3. Si ce reste vaut 0, n est un multiple de 3. Les multiples de 3 de 1 à 20 sont 3, 6, 9, 12, 15 et 18 : le programme affiche 6. Remarque l'indentation à deux niveaux : le if est dans la boucle, et compteur = compteur + 1 est dans le if.

Déroulement d'une boucle forQuatre étapes : la variable prend la première valeur, le bloc s'exécute, on passe à la valeur suivante, la boucle s'arrête quand il n'y en a plus.1Première valeurLa variable de boucle prend la première valeur.2Bloc exécutéLes instructions indentées s'exécutent une fois.3Valeur suivanteLa variable prend la valeur suivante, le bloc recommence.4FinPlus de valeur : le programme sort de la boucle.
  1. Première valeurLa variable de boucle prend la première valeur.
  2. Bloc exécutéLes instructions indentées s'exécutent une fois.
  3. Valeur suivanteLa variable prend la valeur suivante, le bloc recommence.
  4. FinPlus de valeur : le programme sort de la boucle.
Déroulement d'une boucle for · Une boucle for parcourt la suite de valeurs fournie par range.

La boucle while : répéter tant que la condition est vraie

Comment la boucle fonctionne

Une boucle while est composée d'un bloc d'instructions et d'une condition.4 Le déroulement est toujours le même :

  1. la condition est évaluée ;4
  2. si elle est vraie, le bloc est exécuté ;4
  3. on revient à l'étape 1 et la condition est de nouveau évaluée ;
  4. dès que la condition est fausse, la boucle s'arrête et le programme continue après le bloc.4

La condition est donc testée avant chaque tour, y compris le premier. Une conséquence importante : si la condition est déjà fausse au départ, le bloc n'est jamais exécuté.4

Un premier exemple

x = 0
while x < 5:
    print(x)
    x = x + 1
print("Fini")

Déroulons l'exécution :

Tour Valeur de x au test x < 5 Action
1 0 vrai affiche 0, x devient 1
2 1 vrai affiche 1, x devient 2
3 2 vrai affiche 2, x devient 3
4 3 vrai affiche 3, x devient 4
5 4 vrai affiche 4, x devient 5
test final 5 faux la boucle s'arrête

Le programme affiche 0, 1, 2, 3, 4 puis « Fini ». La valeur 5 n'est jamais affichée : quand x vaut 5, la condition est fausse et le bloc ne s'exécute plus.

for ou while : comment choisir ?

  • Tu sais combien de fois répéter (10 fois, une fois par élément d'une liste, de 1 à 100) : prends for.
  • Tu répètes jusqu'à ce qu'un événement arrive (une valeur dépasse un seuil, l'utilisateur donne une bonne réponse) : prends while.

Tout ce que fait un for peut s'écrire avec un while, mais l'inverse n'est pas toujours simple. Quand les deux sont possibles, for est plus court et évite d'oublier l'incrémentation.

Les pièges : boucle infinie et erreurs fréquentes

Voici le cas le plus courant :

x = 0
while x < 5:
    print(x)

Ici, x reste égal à 0 pour toujours. La condition x < 5 est toujours vraie, et le programme affiche 0 sans fin. Il manque la ligne x = x + 1 dans le bloc. Si ton programme semble bloqué dans l'éditeur, interromps-le (dans la plupart des environnements, avec la combinaison Ctrl + C) puis cherche quelle variable de la condition n'est jamais modifiée.

Une autre erreur donne le même résultat : modifier la variable dans le mauvais sens. Avec while x < 5: et x = x - 1, la variable s'éloigne de 5 et la condition reste vraie.

La boucle qui ne s'exécute jamais

Avec while, la condition est testée d'abord : elle peut être fausse dès le départ, et le bloc n'est alors jamais exécuté.4 Exemple : si x = 10 et que la boucle est while x < 5:, rien ne se passe. Ce n'est pas une erreur de Python, c'est le comportement normal. Dans certains langages, une syntaxe particulière existe pour garantir au moins un tour : c'est la boucle « faire ... tant que ».4 En Python, on obtient un effet comparable avec un while True: et un break.

Vérifier un programme à la main : le tableau de suivi

Pour comprendre ce que fait un programme, ou pourquoi il se comporte mal, construis un tableau de suivi : une colonne par variable, une ligne par tour. Écris les valeurs après chaque tour. Si tu vois une valeur qui ne change jamais alors qu'elle figure dans la condition, tu tiens ta boucle infinie.

Pour la boucle somme = 10, qui double tant que somme <= 1000, le tableau est :

Après le tour somme annees
0 (départ) 10 0
1 20 1
2 40 2
3 80 3
4 160 4
5 320 5
6 640 6
7 1280 7

À la fin du septième tour, somme <= 1000 est faux (1280 dépasse 1000) : la boucle s'arrête avec annees = 7.

Associer conditions et boucles dans un même programme

Les vrais programmes mélangent les deux outils. Deux associations reviennent tout le temps : une condition dans une boucle (on filtre ce qu'on traite) et une condition qui pilote la boucle (c'est while).

Cas 1 : une condition dans une boucle for

On veut compter les notes supérieures ou égales à 10 dans une liste.

notes = [8, 12, 15, 9, 10, 17]
reussites = 0
for n in notes:
    if n >= 10:
        reussites = reussites + 1
print(reussites)

La boucle parcourt directement les éléments de la liste. À chaque tour, le if décide si on compte la note. Les notes 12, 15, 10 et 17 sont supérieures ou égales à 10 : le programme affiche 4. Remarque que 10 est bien compté, grâce à >=.

Cas 2 : une saisie contrôlée avec while

reponse = int(input("Donne un nombre entre 1 et 10 : "))
while reponse < 1 or reponse > 10:
    reponse = int(input("Non, entre 1 et 10 : "))
print("Merci")

Le programme repose sur le or : la saisie est refusée si elle est trop petite ou trop grande. Tant que c'est le cas, il redemande. Le corps de la boucle modifie bien reponse, donc la condition peut devenir fausse. C'est exactement la garantie qu'il faut apporter pour éviter une boucle infinie.1

Cas 3 : chercher la première valeur qui convient

On cherche le plus petit entier dont le carré dépasse 200.

n = 1
while n * n <= 200:
    n = n + 1
print(n)

On avance tant que le carré ne dépasse pas 200. Comme 142=19614^2 = 196 et 152=22515^2 = 225, la boucle s'arrête quand n vaut 15 : le programme affiche 15.

Choisir le bon outil
OutilRôleQuand l'utiliser
if / elif / elseChoisir entre plusieurs casLe programme doit réagir selon une situation
for ... in range()Répéter un nombre défini de foisOn connaît le nombre de tours
whileRépéter tant qu'une condition est vraieOn répète jusqu'à un événement
Choisir le bon outil · Chaque outil répond à un besoin précis.

Exercices corrigés

Exercice 1 Somme des entiers de 1 à 6

★☆☆Environ 5 min

On considère le programme suivant.

total = 0
for n in range(1, 7):
    total = total + n
print(total)

Quelle valeur le programme affiche-t-il ?

Indice 1

Écris la liste des valeurs prises par n. Rappelle-toi que la borne de fin de range est exclue.

Indice 2

Mets à jour total tour après tour dans un petit tableau.

Voir la correction pas à pas
  1. range(1, 7) donne les entiers 1, 2, 3, 4, 5, 6 : le 7 est exclu.

  2. Avant la boucle, total vaut 0.

  3. Tour 1 : total = 0 + 1 = 1. Tour 2 : 1 + 2 = 3. Tour 3 : 3 + 3 = 6.

  4. Tour 4 : 6 + 4 = 10. Tour 5 : 10 + 5 = 15. Tour 6 : 15 + 6 = 21.

  5. Après le dernier tour, le programme affiche 21.

Le programme affiche 21, la somme 1+2+3+4+5+61+2+3+4+5+6. Le point à retenir : range(1, 7) s'arrête à 6.

Exercice 2 Combien de tours pour dépasser 100 ?

★★☆Environ 8 min

On considère le programme suivant.

x = 1
tours = 0
while x <= 100:
    x = x * 2
    tours = tours + 1
print(tours)

Quelle valeur de tours le programme affiche-t-il ?

Indice 1

Construis un tableau de suivi avec les colonnes x et tours.

Indice 2

La boucle s'arrête dès que x est strictement supérieur à 100.

Voir la correction pas à pas
  1. Au départ, x vaut 1 et tours vaut 0. La condition x <= 100 est vraie.

  2. Tour 1 : x = 2, tours = 1. Tour 2 : x = 4, tours = 2. Tour 3 : x = 8, tours = 3.

  3. Tour 4 : x = 16, tours = 4. Tour 5 : x = 32, tours = 5. Tour 6 : x = 64, tours = 6.

  4. Après le tour 6, x vaut 64 et la condition 64 <= 100 est encore vraie : on refait un tour.

  5. Tour 7 : x = 128 et tours = 7. La condition 128 <= 100 est fausse : la boucle s'arrête.

  6. Le programme affiche 7.

Le programme affiche 7. On cherche le plus petit nombre de doublements pour que 2n2^n dépasse strictement 100 : 26=642^6 = 64 ne suffit pas, 27=1282^7 = 128 dépasse 100.

Exercice 3 Un barème de tarifs avec elif

★★☆Environ 8 min

Une médiathèque applique ce barème d'abonnement : gratuit jusqu'à 5 ans, 10 euros de 6 à 17 ans, 20 euros de 18 à 64 ans, 15 euros à partir de 65 ans.

  1. Écris un programme Python qui, à partir d'une variable age, affecte le bon montant à la variable prix.
  2. Quel montant est affecté pour age = 18 ? pour age = 65 ?
Indice 1

Range les conditions dans l'ordre croissant des âges, avec des elif.

Indice 2

Fais attention aux bornes : 17 est dans la tranche 6-17, 18 ne l'est plus.

Voir la correction pas à pas
  1. On teste dans l'ordre croissant. Premier cas : if age <= 5: puis prix = 0.

  2. Deuxième cas : elif age <= 17: puis prix = 10. On n'a pas besoin de vérifier age >= 6, car on arrive ici seulement si age > 5.

  3. Troisième cas : elif age <= 64: puis prix = 20.

  4. Dernier cas : else: puis prix = 15, pour tous les âges de 65 ans et plus.

  5. Pour age = 18 : 18 <= 5 faux, 18 <= 17 faux, 18 <= 64 vrai, donc prix vaut 20 euros.

  6. Pour age = 65 : les trois premières conditions sont fausses, on passe au else, donc prix vaut 15 euros.

Programme complet :

if age <= 5:
    prix = 0
elif age <= 17:
    prix = 10
elif age <= 64:
    prix = 20
else:
    prix = 15

Pour 18 ans le prix est 20 euros, pour 65 ans il est de 15 euros. Les valeurs frontières (5, 17, 64) se vérifient toujours avec soin.

Quiz

8 questions · correction immédiate · ton score reste sur ton appareil.

  1. Quel mot-clé Python exécute d'autres instructions lorsque la condition d'un if n'est pas vérifiée ?

  2. Combien de fois le corps de la boucle for i in range(5): est-il exécuté ?

  3. Avec x = 10, que se passe-t-il pour la boucle while x < 5: suivie d'un bloc qui affiche x ?

  4. Quelle boucle est infinie ?

  5. La condition n >= 10 and n <= 20 est vraie pour n = 25.

  6. Pour tester si x est égal à 3 dans une condition, que dois-tu écrire ?

  7. Quelle valeur affiche ce programme ?

    s = 0
    for n in range(1, 5):
        s = s + n
    print(s)
    

  8. Pour répéter des instructions tant que la réponse d'un utilisateur est incorrecte, sans savoir combien d'essais il lui faudra, quelle boucle choisis-tu ?

Les questions qu'on se pose

Pourquoi Python demande-t-il d'indenter ?

En Python, l'indentation indique quelles lignes appartiennent à un bloc : celui d'un if, d'un for ou d'un while. Sans elle, le programme ne saurait pas où le bloc commence et se termine. Utilise toujours le même décalage, en général quatre espaces, et n'oublie pas les deux-points à la fin de la ligne qui ouvre le bloc.

Que faire quand mon programme tourne sans s'arrêter ?

Interromps-le (souvent avec Ctrl + C), puis regarde ta boucle while. Une condition d'arrêt jamais atteinte provoque une boucle infinie.1 Vérifie qu'une variable de la condition est modifiée dans le corps de la boucle, et dans le bon sens. Un tableau de suivi à la main révèle vite la variable qui reste figée.

Comment savoir s'il faut écrire for ou while ?

Pose-toi la question : « Est-ce que je sais combien de tours je vais faire ? » Si oui (10 fois, de 1 à 100), choisis for. Sinon, si tu répètes jusqu'à ce qu'un événement se produise, choisis while.2

Quelle différence entre if et while ?

Les deux testent une condition. Avec if, le bloc s'exécute au plus une fois. Avec while, il se répète tant que la condition reste vraie : la boucle while peut être vue comme une répétition du if.4

Pourquoi range(5) ne contient-il pas 5 ?

La borne de fin de range est exclue. range(5) donne 0, 1, 2, 3, 4, soit cinq valeurs. Pour parcourir de 1 à 10 inclus, on écrit range(1, 11).

Sources

  1. Ressources pédagogiques Éduscol - Programmation en Python, Éduscol. Consulté le 9 novembre 2026.
  2. Instructions conditionnelles et itératives, Éduscol STI. Consulté le 9 novembre 2026.
  3. Mémento Python SNT - Premiers pas, Académie de Lyon. Consulté le 9 novembre 2026.
  4. Boucle while, Wikipédia. Consulté le 9 novembre 2026.
  5. 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.

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