Boucles Python débutant : maîtriser while et for
Apprenez les boucles Python pour débuter : while, for, range, break et continue avec exemples simples et bonnes pratiques.

Les boucles font partie des bases indispensables en programmation. En Python, elles permettent de répéter des actions sans recopier plusieurs fois le même code. Quand on débute, on comprend vite l’idée générale, mais on peut se perdre entre while, for, l’indentation, ou encore les instructions comme break et continue.
Dans ce tutoriel, vous allez apprendre à utiliser les boucles en Python de manière progressive, avec un vocabulaire simple, des exemples concrets et des explications détaillées. L’objectif n’est pas seulement de faire fonctionner du code, mais de comprendre quand utiliser chaque type de boucle, comment éviter les erreurs classiques, et comment lire mentalement l’exécution d’un programme.
Nous allons commencer par la logique de répétition, puis découvrir la boucle while, ensuite la boucle for, et enfin quelques outils très utiles comme range(), break, continue et les bonnes pratiques pour ne pas se perdre. Ce contenu s’adresse aux débutants complets ou à toute personne qui veut consolider ses bases en Python.
Prérequis
- Savoir lancer Python ou utiliser un éditeur comme VS Code, Thonny ou IDLE.
- Connaître les notions de variables, d’affichage avec
print()et de conditions simples avecif. - Comprendre que l’indentation est importante en Python.
Matériel nécessaire
- Python 3 installé
- Un éditeur de code ou l’interpréteur Python
- Un terminal ou une console Python
Étapes
Comprendre ce qu’est une boucle


Une boucle sert à répéter un bloc d’instructions. Au lieu d’écrire plusieurs fois la même ligne, vous écrivez une seule structure qui exécute ce bloc autant de fois que nécessaire.
Exemple sans boucle :
pythonprint("Bonjour") print("Bonjour") print("Bonjour")Avec une boucle, on peut demander à Python de répéter cet affichage automatiquement. Une boucle est donc un outil de gain de temps, mais surtout de clarté et de souplesse. Si vous voulez afficher le message 3 fois, 10 fois ou 100 fois, vous n’avez pas besoin de dupliquer le code à la main.
En Python, il existe principalement deux types de boucles pour débuter :
while: on répète tant qu’une condition est vraie.for: on répète pour chaque élément d’une séquence ou sur une suite de valeurs.
Le bon réflexe consiste à vous poser une question simple :
- Est-ce que je sais combien de fois je veux répéter ? La boucle
forest souvent adaptée. - Est-ce que je veux répéter jusqu’à ce qu’une condition change ? La boucle
whileest souvent plus naturelle.
Avant même d’écrire du code, essayez toujours de formuler la logique en français. Par exemple :
- "Répéter l’affichage 5 fois" → probablement
for. - "Continuer tant que l’utilisateur n’a pas saisi le bon mot" → probablement
while.
Cette habitude vous aidera énormément à choisir la bonne structure dès le départ.
La structure d’une boucle en Python

Les boucles Python utilisent une syntaxe simple, mais très stricte sur un point : l’indentation. Le bloc de code répété doit être décalé vers la droite après les deux-points
:.Exemple général :
pythoncondition = True while condition: print("Cette ligne est dans la boucle")Ici, la ligne indentée appartient à la boucle. Si vous retirez l’indentation, Python ne comprend plus la structure correctement.
Le même principe s’applique à
for:pythonfor nombre in range(3): print(nombre)Dans les deux cas :
- la ligne de la boucle se termine par
:, - le bloc à répéter est indenté,
- toutes les lignes alignées au même niveau d’indentation appartiennent au même bloc.
Exemple :
pythonfor nombre in range(3): print("Début du tour") print(nombre) print("Fin de la boucle")Les deux premiers
print()sont dans la boucle. Le dernier est en dehors, car il n’est plus indenté. Il ne s’exécute qu’une seule fois, après la fin de la boucle.Quand on débute, beaucoup d’erreurs viennent d’un bloc mal aligné. Prenez donc l’habitude de relire visuellement votre code comme des niveaux :
- niveau 0 : en dehors de la boucle,
- niveau 1 : dans la boucle,
- niveau 2 : éventuellement dans un
ifplacé dans la boucle.
Cette lecture hiérarchique est essentielle pour comprendre ce que Python va faire.
- la ligne de la boucle se termine par
Découvrir la boucle while simplement
La boucle
whilerépète un bloc tant qu’une condition est vraie. C’est une structure très utile quand on ne connaît pas à l’avance le nombre exact de répétitions.Syntaxe :
pythonwhile condition: instructionsExemple simple :
pythoncompteur = 1 while compteur <= 3: print(compteur) compteur = compteur + 1Ce programme affiche :
python1 2 3Voyons ce qui se passe :
compteurvaut 1.- Python vérifie la condition
compteur <= 3. - Comme elle est vraie, le bloc s’exécute.
- On affiche la valeur du compteur.
- On augmente le compteur de 1.
- Python revient au début de la boucle et revérifie la condition.
Quand
compteurfinit par valoir 4, la condition devient fausse, et la boucle s’arrête.La clé pour comprendre
while, c’est qu’il faut presque toujours une évolution dans la boucle. Si la condition reste toujours vraie, la boucle ne s’arrête jamais. C’est ce qu’on appelle une boucle infinie.Exemple dangereux :
pythoncompteur = 1 while compteur <= 3: print(compteur)Ici,
compteurne change jamais. Il reste à 1, donc la condition reste vraie sans fin.La boucle
whileest particulièrement utile dans ces cas :- attendre une saisie correcte,
- répéter un traitement jusqu’à une condition d’arrêt,
- gérer une logique où le nombre de tours n’est pas connu au départ.
Exemple avec une saisie utilisateur :
pythonmot = "python" reponse = "" while reponse != mot: reponse = input("Tapez le mot secret : ") print("Bravo !")Le programme continue tant que l’utilisateur n’a pas tapé
python. On ne sait pas combien d’essais seront nécessaires, doncwhileest bien adapté.Bien lire une boucle while pas à pas
Pour ne pas vous perdre, il faut apprendre à simuler mentalement une boucle. Prenons cet exemple :
pythonnombre = 0 while nombre < 5: print("Valeur :", nombre) nombre = nombre + 2Lecture détaillée :
- Au départ,
nombre = 0. - On teste
0 < 5→ vrai. - On affiche
Valeur : 0. - On fait
nombre = 2. - On teste
2 < 5→ vrai. - On affiche
Valeur : 2. - On fait
nombre = 4. - On teste
4 < 5→ vrai. - On affiche
Valeur : 4. - On fait
nombre = 6. - On teste
6 < 5→ faux. - La boucle s’arrête.
Résultat affiché :
pythonValeur : 0 Valeur : 2 Valeur : 4Cette méthode est très importante : notez la valeur de la variable à chaque tour. Quand une boucle vous paraît confuse, prenez une feuille ou écrivez des commentaires temporairement pour suivre l’évolution des variables.
Par exemple, vous pouvez même ajouter un affichage de contrôle :
pythonnombre = 0 while nombre < 5: print("Avant mise à jour :", nombre) nombre = nombre + 2 print("Après mise à jour :", nombre)Ce n’est pas du code qu’on laisse forcément à la fin, mais c’est une excellente technique de débogage quand on apprend.
- Au départ,
Découvrir la boucle for sans complication
La boucle
forest souvent la plus simple pour débuter quand on veut répéter une action un certain nombre de fois, ou parcourir des éléments un par un.Syntaxe générale :
pythonfor variable in sequence: instructionsExemple avec une liste :
pythonfruits = ["pomme", "banane", "orange"] for fruit in fruits: print(fruit)Python prend chaque élément de la liste, le place dans la variable
fruit, puis exécute le bloc.Affichage :
pythonpomme banane orangeLa grande force de
for, c’est qu’il évite souvent de gérer manuellement un compteur. Python s’occupe de passer d’un élément au suivant.Vous pouvez lire cette boucle comme une phrase :
Pour chaque fruit dans fruits, afficher fruit.
C’est une manière très naturelle de programmer. Voilà pourquoi
forest extrêmement utilisé en Python.Autre exemple simple :
pythonfor lettre in "chat": print(lettre)Affichage :
pythonc h a tIci, on parcourt une chaîne de caractères caractère par caractère.
La boucle
forfonctionne donc très bien avec :- les listes,
- les chaînes de caractères,
- les suites générées par
range(), - et plus largement les objets parcourables.
Pour un débutant, retenez surtout ceci : si vous voulez parcourir une collection d’éléments,
forest souvent le meilleur choix.Utiliser range() avec for
Très souvent, on utilise
foravecrange()pour répéter une action un nombre précis de fois.Exemple :
pythonfor i in range(5): print(i)Affichage :
python0 1 2 3 4range(5)produit une suite de valeurs qui commence à 0 et s’arrête avant 5.C’est un point essentiel : la borne de fin n’est pas incluse.
Voici les formes les plus utiles :
range(fin): de 0 jusqu’àfin - 1range(debut, fin): dedebutjusqu’àfin - 1range(debut, fin, pas): progression avec un pas donné
Exemples :
pythonfor i in range(1, 4): print(i)Affichage :
python1 2 3pythonfor i in range(0, 10, 2): print(i)Affichage :
python0 2 4 6 8Vous pouvez utiliser
range()pour :- afficher un message plusieurs fois,
- compter,
- générer des indices simples,
- construire des petits exercices mathématiques ou visuels.
Exemple pratique :
pythonfor tour in range(3): print("Tour numéro", tour)Le résultat commence à 0. Si vous voulez afficher 1, 2, 3 au lieu de 0, 1, 2, vous pouvez écrire :
pythonfor tour in range(1, 4): print("Tour numéro", tour)Un débutant se trompe souvent en écrivant
range(1, 3)en pensant obtenir 1, 2, 3. En réalité, cela donne seulement 1 et 2. Il faut bien retenir que la fin n’est jamais incluse.Quand choisir while ou for
Une question très fréquente chez les débutants est : quelle boucle choisir ? La réponse dépend de la situation.
Choisissez souvent
forsi :- vous connaissez à l’avance le nombre de répétitions,
- vous parcourez une liste, une chaîne ou une suite de valeurs,
- vous voulez un code plus direct et plus lisible.
Choisissez souvent
whilesi :- la répétition dépend d’une condition,
- vous ne savez pas combien de tours seront nécessaires,
- vous attendez un événement, une saisie ou un changement d’état.
Comparons.
Afficher 5 fois un message :
pythonfor i in range(5): print("Bonjour")Ici,
forest naturel, car on connaît le nombre de répétitions.Demander une réponse jusqu’à obtenir "oui" :
pythonreponse = "" while reponse != "oui": reponse = input("Tapez oui : ")Ici,
whileest logique, car on ne connaît pas le nombre d’essais.Il est parfois possible de résoudre un même problème avec les deux boucles, mais l’une sera plus claire que l’autre. En Python, on cherche généralement la solution la plus lisible.
En pratique, beaucoup de débutants abusent de
whilealors qu’unforserait plus simple. Si vous avez juste besoin de répéter un nombre connu de fois, préférezfor. Vous éviterez ainsi de gérer vous-même le compteur et les risques de boucle infinie.Utiliser break pour arrêter une boucle
L’instruction
breakpermet de sortir immédiatement d’une boucle, même si elle n’a pas terminé normalement.Exemple :
pythonfor i in range(10): if i == 4: break print(i)Affichage :
python0 1 2 3Quand
ivaut 4, Python exécutebreaket quitte la boucle. Leprint(i)n’est pas exécuté pour cette valeur.Avec
while, c’est aussi très utile :pythonwhile True: mot = input("Tapez stop pour quitter : ") if mot == "stop": break print("Vous avez écrit :", mot)Ici, la boucle est écrite avec une condition toujours vraie (
True), mais la sortie se fait grâce àbreak.Ce style est fréquent quand on veut une boucle qui continue jusqu’à un ordre explicite d’arrêt.
Attention toutefois :
breakest pratique, mais si vous l’utilisez partout, le code peut devenir plus difficile à lire. Essayez de l’employer quand il simplifie vraiment la logique.Cas typiques d’utilisation :
- arrêter une recherche quand on a trouvé l’élément voulu,
- quitter une boucle après une commande utilisateur,
- interrompre un traitement si une condition importante est atteinte.
Utiliser continue pour passer au tour suivant
L’instruction
continuene quitte pas complètement la boucle. Elle permet de sauter le reste du bloc pour le tour actuel et de passer directement au suivant.Exemple :
pythonfor i in range(5): if i == 2: continue print(i)Affichage :
python0 1 3 4Quand
ivaut 2, Python n’exécute pas leprint(i)pour ce tour, et passe au suivant.Un exemple concret : afficher seulement les nombres impairs.
pythonfor i in range(10): if i % 2 == 0: continue print(i)Affichage :
python1 3 5 7 9Ici, si le nombre est pair, on saute le reste du bloc.
continuepeut rendre certaines boucles plus lisibles, mais comme pourbreak, il ne faut pas en abuser. Quand plusieurscontinues’enchaînent avec des conditions complexes, le code peut devenir moins clair pour un débutant.Demandez-vous toujours si un simple
ifne suffirait pas. Parfois, ceci est plus facile à lire :pythonfor i in range(10): if i % 2 != 0: print(i)Les deux approches sont valides. Le choix dépend de la lisibilité du contexte.
Boucles et conditions : un duo essentiel
Les boucles deviennent vraiment utiles quand on les combine avec des conditions. Cela permet de répéter un traitement, mais en adaptant ce qui se passe selon certaines situations.
Exemple :
pythonfor i in range(1, 6): if i == 3: print("Milieu") else: print(i)Affichage :
python1 2 Milieu 4 5Ici, la boucle fait avancer les valeurs, et le
ifchange le comportement pour une valeur particulière.Avec
whileaussi :pythoncompteur = 1 while compteur <= 5: if compteur % 2 == 0: print(compteur, "est pair") else: print(compteur, "est impair") compteur = compteur + 1Cette combinaison est au cœur d’une énorme partie des programmes Python.
Quand vous imbriquez boucle et condition, surveillez bien l’indentation. C’est souvent là que les débutants se trompent.
Exemple de structure :
pythonfor element in range(3): if element == 1: print("Cas spécial") print("Fin du tour")Dans cet exemple,
print("Fin du tour")est bien dans la boucle, mais pas dans leif. Il s’exécute donc à chaque tour.Pour lire correctement ce genre de code, repérez toujours à quel bloc appartient chaque ligne.
Éviter les boucles infinies et les pièges classiques
La boucle infinie est l’un des pièges les plus fréquents avec
while. Elle se produit quand la condition reste vraie indéfiniment.Exemple :
pythonx = 0 while x < 5: print(x)Ici,
xne change jamais. La boucle ne peut donc pas se terminer.Pour éviter ce problème :
- vérifiez quelle variable contrôle la condition,
- assurez-vous qu’elle change dans le bon sens,
- relisez la condition d’arrêt.
Autre piège classique : la mauvaise condition.
pythonx = 10 while x < 5: print(x) x = x + 1Ici, la boucle ne démarre jamais, car la condition est fausse dès le départ.
Ce n’est pas forcément une erreur de syntaxe, mais c’est souvent une erreur de logique.
Autres difficultés fréquentes :
- oublier les deux-points
:, - mal indenter le bloc,
- confondre
=et==dans une condition, - penser que
range(5)va jusqu’à 5 inclus, - modifier la mauvaise variable dans une boucle
while.
Quand une boucle ne se comporte pas comme prévu, ne cherchez pas tout de suite une solution compliquée. Revenez à trois questions simples :
- Quelle est la condition de départ ?
- Quelle variable change à chaque tour ?
- À quel moment la boucle est censée s’arrêter ?
Ces trois questions suffisent souvent à repérer le problème.
Exemples pratiques pour s’entraîner
Voici quelques mini-exemples très utiles pour consolider vos bases.
1. Afficher les nombres de 1 à 5 avec while
pythonn = 1 while n <= 5: print(n) n = n + 12. Afficher les nombres de 1 à 5 avec for
pythonfor n in range(1, 6): print(n)Ces deux programmes produisent le même résultat. Comparez leur style :
forest souvent plus compact ici.3. Afficher chaque lettre d’un mot
pythonmot = "python" for lettre in mot: print(lettre)4. Compter à rebours
pythonfor n in range(5, 0, -1): print(n) print("Décollage !")Le pas négatif permet de descendre au lieu de monter.
5. Répéter jusqu’à une bonne saisie
pythoncode = "1234" saisie = "" while saisie != code: saisie = input("Entrez le code : ") print("Code correct")6. Arrêter dès qu’un nombre particulier est atteint
pythonfor n in range(10): if n == 7: break print(n)7. Ignorer certaines valeurs
pythonfor n in range(1, 6): if n == 3: continue print(n)Essayez maintenant de modifier vous-même ces exemples :
- changer les bornes,
- changer le message affiché,
- remplacer la condition,
- tester avec des nombres pairs seulement,
- ajouter un
ifdans la boucle.
La meilleure manière d’apprendre les boucles est de faire varier de petits programmes et d’observer exactement ce qui change.
Méthode simple pour ne pas se perdre
Voici une méthode très concrète pour comprendre et écrire des boucles sans stress.
1. Décrivez la logique en français
Exemple : « Afficher les nombres de 1 à 10 » ou « Répéter jusqu’à ce que l’utilisateur tape oui ».
2. Choisissez la bonne boucle
- Nombre de répétitions connu →
for - Condition d’arrêt variable →
while
3. Identifiez l’élément qui évolue
Dans une boucle
while, demandez-vous toujours : qu’est-ce qui change à chaque tour ?4. Vérifiez la condition d’arrêt
La boucle finira-t-elle vraiment par s’arrêter ?
5. Testez avec un petit cas
Au lieu de viser directement 100 répétitions, testez d’abord avec 3 ou 5. Cela rend le comportement plus facile à suivre.
6. Affichez des valeurs intermédiaires si besoin
Un simple
print()de contrôle peut révéler une erreur de logique en quelques secondes.7. Relisez l’indentation
Une ligne mal placée peut complètement changer le comportement du programme.
Cette méthode peut paraître simple, mais elle est extrêmement efficace. La plupart des difficultés viennent non pas de la syntaxe des boucles, mais d’un manque de méthode dans leur construction ou leur lecture.
- Nombre de répétitions connu →
Erreurs fréquentes & dépannage
- Oublier d’incrémenter une variable dans une boucle
while, ce qui peut provoquer une boucle infinie. - Confondre
=et==dans une condition. - Penser que
range(5)inclut 5, alors que la suite s’arrête avant. - Mal gérer l’indentation, ce qui change le bloc réellement exécuté dans la boucle.
- Utiliser
whilealors qu’unforserait plus simple, ce qui rend le code plus difficile à lire. - Placer un
breakou uncontinueau mauvais endroit, ce qui modifie le flux du programme de manière inattendue. - Ne pas tester la logique pas à pas quand le résultat semble étrange.
Astuces & pour aller plus loin
- Commencez par des boucles très courtes pour comprendre le mécanisme.
- Quand vous utilisez
while, repérez immédiatement la variable qui contrôle l’arrêt. - Pour un parcours simple d’éléments ou un nombre connu de répétitions, privilégiez
for. - Ajoutez temporairement des
print()de débogage pour suivre les valeurs. - Relisez toujours les bornes de
range(): début, fin non incluse, pas éventuel. - Évitez de complexifier trop tôt vos boucles avec beaucoup de conditions imbriquées.
- Lisez le code à voix basse en français : cela aide beaucoup à comprendre sa logique.
Questions fréquentes
Quelle est la différence principale entre while et for en Python ?
while répète un bloc tant qu’une condition reste vraie. for parcourt des éléments ou répète sur une suite de valeurs. En débutant, on utilise souvent for quand le nombre de répétitions est connu, et while quand il dépend d’une condition.
Pourquoi ma boucle while ne s’arrête-t-elle jamais ?
En général, cela arrive parce que la variable liée à la condition ne change pas, ou ne change pas dans le bon sens. Vérifiez la condition, puis regardez quelle instruction la fait évoluer à chaque tour.
Pourquoi range(5) s’arrête à 4 ?
Parce que range(5) commence à 0 et va jusqu’à la valeur juste avant 5. C’est le fonctionnement normal de range() en Python.
Peut-on faire la même chose avec while et for ?
Parfois oui, mais une des deux boucles sera souvent plus lisible. En Python, on privilégie généralement la solution la plus simple à comprendre.
À quoi servent break et continue ?
break arrête immédiatement la boucle. continue passe directement au tour suivant sans exécuter la fin du bloc pour le tour actuel.
Comment savoir si une ligne est dans la boucle ou non ?
En Python, cela dépend de l’indentation. Une ligne indentée sous la boucle fait partie de la boucle. Si elle revient au niveau précédent, elle est en dehors.
Conclusion
Les boucles Python sont un passage obligatoire pour progresser en programmation. La boucle while vous permet de répéter une action selon une condition, tandis que la boucle for est idéale pour parcourir des éléments ou répéter un nombre connu de fois. En comprenant bien l’indentation, les conditions, range(), ainsi que les instructions break et continue, vous disposez déjà d’une base très solide.
Le plus important, surtout au début, est de ne pas chercher la complexité. Écrivez des exemples courts, testez-les souvent, suivez l’évolution des variables et relisez chaque boucle comme une suite d’étapes logiques. Avec un peu de pratique, vous verrez que les boucles deviennent rapidement naturelles, et qu’elles ouvrent la porte à des programmes beaucoup plus utiles et plus puissants.