Bases

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.

Boucles Python débutant : maîtriser while et for

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 avec if.
  • 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

  1. Comprendre ce qu’est une boucle

    Gros plan réaliste d’un ordinateur portable affichant une boucle while Python simple avec un compteur, avec une main près du pavé tactile sur un bureau sobre.
    Vue de dessus réaliste d’un ordinateur portable sur un bureau, affichant une boucle for Python utilisant range() dans une fenêtre de code.

    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 :

    python
    print("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 for est souvent adaptée.
    • Est-ce que je veux répéter jusqu’à ce qu’une condition change ? La boucle while est 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.

  2. La structure d’une boucle en Python

    Photo réaliste en angle d’un ordinateur portable montrant un exemple de boucle Python avec une instruction break dans le code.

    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 :

    python
    condition = 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 :

    python
    for 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 :

    python
    for 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 if placé dans la boucle.

    Cette lecture hiérarchique est essentielle pour comprendre ce que Python va faire.

  3. Découvrir la boucle while simplement

    La boucle while ré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 :

    python
    while condition:
        instructions

    Exemple simple :

    python
    compteur = 1
    
    while compteur <= 3:
        print(compteur)
        compteur = compteur + 1

    Ce programme affiche :

    python
    1
    2
    3

    Voyons ce qui se passe :

    1. compteur vaut 1.
    2. Python vérifie la condition compteur <= 3.
    3. Comme elle est vraie, le bloc s’exécute.
    4. On affiche la valeur du compteur.
    5. On augmente le compteur de 1.
    6. Python revient au début de la boucle et revérifie la condition.

    Quand compteur finit 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 :

    python
    compteur = 1
    
    while compteur <= 3:
        print(compteur)

    Ici, compteur ne change jamais. Il reste à 1, donc la condition reste vraie sans fin.

    La boucle while est 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 :

    python
    mot = "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, donc while est bien adapté.

  4. Bien lire une boucle while pas à pas

    Pour ne pas vous perdre, il faut apprendre à simuler mentalement une boucle. Prenons cet exemple :

    python
    nombre = 0
    
    while nombre < 5:
        print("Valeur :", nombre)
        nombre = nombre + 2

    Lecture 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é :

    python
    Valeur : 0
    Valeur : 2
    Valeur : 4

    Cette 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 :

    python
    nombre = 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.

  5. Découvrir la boucle for sans complication

    La boucle for est 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 :

    python
    for variable in sequence:
        instructions

    Exemple avec une liste :

    python
    fruits = ["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 :

    python
    pomme
    banane
    orange

    La 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 for est extrêmement utilisé en Python.

    Autre exemple simple :

    python
    for lettre in "chat":
        print(lettre)

    Affichage :

    python
    c
    h
    a
    t

    Ici, on parcourt une chaîne de caractères caractère par caractère.

    La boucle for fonctionne 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, for est souvent le meilleur choix.

  6. Utiliser range() avec for

    Très souvent, on utilise for avec range() pour répéter une action un nombre précis de fois.

    Exemple :

    python
    for i in range(5):
        print(i)

    Affichage :

    python
    0
    1
    2
    3
    4

    range(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 - 1
    • range(debut, fin) : de debut jusqu’à fin - 1
    • range(debut, fin, pas) : progression avec un pas donné

    Exemples :

    python
    for i in range(1, 4):
        print(i)

    Affichage :

    python
    1
    2
    3
    python
    for i in range(0, 10, 2):
        print(i)

    Affichage :

    python
    0
    2
    4
    6
    8

    Vous 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 :

    python
    for 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 :

    python
    for 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.

  7. 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 for si :

    • 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 while si :

    • 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 :

    python
    for i in range(5):
        print("Bonjour")

    Ici, for est naturel, car on connaît le nombre de répétitions.

    Demander une réponse jusqu’à obtenir "oui" :

    python
    reponse = ""
    
    while reponse != "oui":
        reponse = input("Tapez oui : ")

    Ici, while est 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 while alors qu’un for serait plus simple. Si vous avez juste besoin de répéter un nombre connu de fois, préférez for. Vous éviterez ainsi de gérer vous-même le compteur et les risques de boucle infinie.

  8. Utiliser break pour arrêter une boucle

    L’instruction break permet de sortir immédiatement d’une boucle, même si elle n’a pas terminé normalement.

    Exemple :

    python
    for i in range(10):
        if i == 4:
            break
        print(i)

    Affichage :

    python
    0
    1
    2
    3

    Quand i vaut 4, Python exécute break et quitte la boucle. Le print(i) n’est pas exécuté pour cette valeur.

    Avec while, c’est aussi très utile :

    python
    while 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 : break est 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.
  9. Utiliser continue pour passer au tour suivant

    L’instruction continue ne 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 :

    python
    for i in range(5):
        if i == 2:
            continue
        print(i)

    Affichage :

    python
    0
    1
    3
    4

    Quand i vaut 2, Python n’exécute pas le print(i) pour ce tour, et passe au suivant.

    Un exemple concret : afficher seulement les nombres impairs.

    python
    for i in range(10):
        if i % 2 == 0:
            continue
        print(i)

    Affichage :

    python
    1
    3
    5
    7
    9

    Ici, si le nombre est pair, on saute le reste du bloc.

    continue peut rendre certaines boucles plus lisibles, mais comme pour break, il ne faut pas en abuser. Quand plusieurs continue s’enchaînent avec des conditions complexes, le code peut devenir moins clair pour un débutant.

    Demandez-vous toujours si un simple if ne suffirait pas. Parfois, ceci est plus facile à lire :

    python
    for i in range(10):
        if i % 2 != 0:
            print(i)

    Les deux approches sont valides. Le choix dépend de la lisibilité du contexte.

  10. 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 :

    python
    for i in range(1, 6):
        if i == 3:
            print("Milieu")
        else:
            print(i)

    Affichage :

    python
    1
    2
    Milieu
    4
    5

    Ici, la boucle fait avancer les valeurs, et le if change le comportement pour une valeur particulière.

    Avec while aussi :

    python
    compteur = 1
    
    while compteur <= 5:
        if compteur % 2 == 0:
            print(compteur, "est pair")
        else:
            print(compteur, "est impair")
        compteur = compteur + 1

    Cette 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 :

    python
    for 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 le if. Il s’exécute donc à chaque tour.

    Pour lire correctement ce genre de code, repérez toujours à quel bloc appartient chaque ligne.

  11. É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 :

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

    Ici, x ne 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.

    python
    x = 10
    
    while x < 5:
        print(x)
        x = x + 1

    Ici, 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 :

    1. Quelle est la condition de départ ?
    2. Quelle variable change à chaque tour ?
    3. À quel moment la boucle est censée s’arrêter ?

    Ces trois questions suffisent souvent à repérer le problème.

  12. 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

    python
    n = 1
    
    while n <= 5:
        print(n)
        n = n + 1

    2. Afficher les nombres de 1 à 5 avec for

    python
    for n in range(1, 6):
        print(n)

    Ces deux programmes produisent le même résultat. Comparez leur style : for est souvent plus compact ici.

    3. Afficher chaque lettre d’un mot

    python
    mot = "python"
    
    for lettre in mot:
        print(lettre)

    4. Compter à rebours

    python
    for 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

    python
    code = "1234"
    saisie = ""
    
    while saisie != code:
        saisie = input("Entrez le code : ")
    
    print("Code correct")

    6. Arrêter dès qu’un nombre particulier est atteint

    python
    for n in range(10):
        if n == 7:
            break
        print(n)

    7. Ignorer certaines valeurs

    python
    for 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 if dans la boucle.

    La meilleure manière d’apprendre les boucles est de faire varier de petits programmes et d’observer exactement ce qui change.

  13. 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.

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 while alors qu’un for serait plus simple, ce qui rend le code plus difficile à lire.
  • Placer un break ou un continue au 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.

Commentaires· Aucun commentaire pour l'instant

Soyez le premier à réagir.

Laisser un commentaire