Boucles en Python

Programmation - 3ème

Boucles en Python

30 min+20 XPapprentissage

Objectifs

  • Comprendre le principe et l'utilité d'une boucle en programmation
  • Maîtriser la syntaxe des boucles 'for' et 'while' en Python
  • Savoir choisir entre une boucle 'for' et une boucle 'while' selon la situation

Introduction

Imaginez que vous devez compter jusqu'à 1000 ou afficher 'Bonjour' 50 fois dans votre programme. Écrire chaque ligne manuellement serait long et fastidieux. Heureusement, en programmation, nous avons des outils magiques pour répéter des actions : les boucles !

Comment automatiser la répétition d'instructions dans un programme Python sans les réécrire des centaines de fois ?

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

La boucle 'for' est utilisée lorsque l'on sait à l'avance combien de fois on veut répéter une action. En Python, on l'utilise souvent avec la fonction 'range()' pour générer une séquence de nombres. La syntaxe est : 'for variable in sequence:'. Tout ce qui est indenté (décalé avec la touche Tab) après les deux points sera répété. Par exemple, 'for i in range(5):' signifie 'pour chaque valeur i dans la séquence de 0 à 4'. La variable 'i' prendra successivement les valeurs 0, 1, 2, 3, 4. La fonction 'range()' est très flexible : 'range(5)' donne les nombres de 0 à 4. 'range(2, 6)' donne les nombres de 2 à 5. 'range(0, 10, 2)' donne les nombres pairs de 0 à 8 (on avance de 2 en 2). On peut aussi parcourir directement les éléments d'une liste : 'for eleve in ["Léa", "Thomas", "Chloé"]: print("Bonjour", eleve)' affichera un message personnalisé pour chaque prénom.

Points clés

  • Utilisée quand le nombre de répétitions est connu à l'avance.
  • Syntaxe : for variable in séquence:
  • S'utilise souvent avec range(debut, fin, pas) pour générer des nombres.
  • Le bloc d'instructions à répéter est indenté (décalé vers la droite).

La boucle 'while' : répéter tant qu'une condition est vraie

La boucle 'while' (qui signifie 'tant que') est utilisée quand on veut répéter des instructions tant qu'une condition spécifique reste vraie. On ne connaît pas forcément à l'avance le nombre de tours de boucle. La syntaxe est : 'while condition:'. La condition est une expression qui peut être évaluée comme Vraie (True) ou Faux (False). Tant qu'elle est Vraie, le bloc indenté s'exécute. Il faut être très prudent pour éviter les boucles infinies ! Une boucle infinie se produit si la condition ne devient jamais fausse. Par exemple, 'while True:' créera une boucle qui ne s'arrête jamais, ce qui peut faire planter le programme. Pour contrôler la boucle, on modifie généralement une variable dans le bloc d'instructions. Exemple concret : un programme qui demande un mot de passe. 'mot_de_passe = "" while mot_de_passe != "Python3": mot_de_passe = input("Entrez le mot de passe : ")'. La boucle continuera à demander le mot de passe tant que l'utilisateur ne tapera pas 'Python3'. Un autre exemple : compter à rebours. 'compteur = 5 while compteur > 0: print(compteur) compteur = compteur - 1' affichera 5, 4, 3, 2, 1.

Points clés

  • Utilisée quand on répète tant qu'une condition est vérifiée.
  • Syntaxe : while condition:
  • Risque de boucle infinie si la condition ne devient jamais fausse.
  • Il faut prévoir une manière de modifier la condition dans la boucle.

Applications pratiques

Voyons des cas concrets pour choisir la bonne boucle. 1) Calculer la somme des nombres de 1 à 100 : c'est idéal pour une boucle 'for' car on connaît la plage exacte. 'somme = 0 for nombre in range(1, 101): somme = somme + nombre'. 2) Simuler une caisse enregistreuse qui additionne des prix jusqu'à ce que l'utilisateur tape '0' : parfait pour 'while' car on ne sait pas combien d'articles le client aura. 'total = 0.0 prix = 1.0 while prix != 0: prix = float(input("Prix de l'article (0 pour terminer) : ")) total = total + prix'. 3) Afficher les tables de multiplication : on imbrique deux boucles 'for'. 'for table in range(1, 11): print(f"\nTable de {table}:") for multiplicateur in range(1, 11): resultat = table * multiplicateur print(f"{table} x {multiplicateur} = {resultat}")'. 4) Jeu du 'devine le nombre' : l'ordinateur choisit un nombre et l'utilisateur doit le trouver. On utilise 'while' pour continuer tant que la proposition est incorrecte. 'nombre_secret = 42 proposition = 0 while proposition != nombre_secret: proposition = int(input("Devinez le nombre : ")) if proposition < nombre_secret: print("Trop petit !") elif proposition > nombre_secret: print("Trop grand !") print("Bravo !")'.

Points clés

  • Choisir 'for' pour un parcours connu (liste, plage de nombres).
  • Choisir 'while' pour une répétition conditionnelle (attente d'une action utilisateur).
  • On peut imbriquer des boucles (une boucle dans une autre).
  • Penser à initialiser les variables avant la boucle (ex: somme=0).

À retenir

Les boucles permettent d'automatiser la répétition d'instructions. La boucle 'for' est adaptée quand on connaît le nombre d'itérations, souvent en parcourant une séquence générée par 'range()'. La boucle 'while' répète un bloc tant qu'une condition booléenne reste vraie, ce qui est utile pour des interactions dont la durée est inconnue. Le choix entre les deux dépend donc de la nature du problème à résoudre : un parcours défini ou une attente conditionnelle.

  • Une boucle 'for' sert à parcourir une séquence connue (avec range() ou une liste).
  • Une boucle 'while' répète des instructions tant que sa condition est True.
  • Il faut absolument éviter les boucles infinies en s'assurant que la condition d'un 'while' peut devenir False.
  • Le code à répéter doit être indenté après les deux points (:) de la déclaration de la boucle.
EdTech AI