Boucles en Python SNT
Ce qu'il faut comprendre
Imagine que tu doives écrire 100 fois la même phrase sur une feuille. C'est long et ennuyeux, non ? En Python, les boucles permettent de répéter des instructions automatiquement, sans que tu aies à les écrire plusieurs fois. Elles sont très utiles pour parcourir une liste, traiter les lignes d'un fichier CSV, ou répéter une action jusqu'à ce qu'une condition soit remplie.
En SNT, on utilise souvent les boucles pour analyser des données (comme des notes, des températures, etc.) stockées dans des listes ou des fichiers CSV. Les boucles te font gagner du temps et rendent ton code plus clair.
Les notions essentielles
La boucle for
La boucle for sert à répéter une action pour chaque élément d'une séquence (liste, chaîne de caractères, etc.).
Syntaxe :
for variable in sequence:
instruction(s)
variableprend successivement la valeur de chaque élément desequence.- Les instructions à répéter sont indentées (décalées de 4 espaces ou 1 tabulation).
Exemple :
notes = [12, 15, 8, 19]
for note in notes:
print(note)
Ce code affiche chaque note une par une.
La boucle while
La boucle while répète des instructions tant qu'une condition est vraie.
Syntaxe :
while condition:
instruction(s)
- La condition est une expression booléenne (vraie ou fausse).
- Il faut que la condition devienne fausse à un moment, sinon la boucle tourne indéfiniment (boucle infinie).
Exemple :
i = 0
while i < 5:
print(i)
i = i + 1
Ce code affiche les nombres de 0 à 4.
La fonction range()
range(n) génère une séquence de nombres de 0 à n-1. Très utile avec for pour répéter un nombre fixe de fois.
Exemple :
for i in range(5):
print("Bonjour")
Affiche "Bonjour" 5 fois.
Parcourir une liste avec for
On peut aussi utiliser range(len(liste)) pour parcourir une liste par indices.
Exemple :
notes = [12, 15, 8, 19]
for i in range(len(notes)):
print("Note", i+1, ":", notes[i])
Lire un fichier CSV avec une boucle
Un fichier CSV (Comma-Separated Values) contient des données séparées par des virgules. On peut le lire ligne par ligne avec une boucle.
Exemple :
import csv
with open("notes.csv", "r") as fichier:
lecteur = csv.reader(fichier)
for ligne in lecteur:
print(ligne)
Chaque ligne est une liste de valeurs.
Méthode
- Identifier le besoin : As-tu besoin de répéter une action pour chaque élément d'une liste (boucle
for) ou jusqu'à ce qu'une condition change (bouclewhile) ? - Choisir la boucle :
- Si tu connais le nombre d'itérations ou si tu veux parcourir une séquence →
for. - Si tu ne sais pas combien de fois répéter, mais tu as une condition d'arrêt →
while.
- Si tu connais le nombre d'itérations ou si tu veux parcourir une séquence →
- Écrire la structure :
- Pour
for:for element in sequence: - Pour
while:while condition:
- Pour
- Indenter les instructions à répéter.
- Tester : Vérifie que la boucle s'arrête bien (pas de boucle infinie).
Exemple corrigé
Énoncé : On a une liste de températures en degrés Celsius : temperatures = [12, 15, 8, 19, 22]. Écrire un programme qui affiche chaque température et sa conversion en degrés Fahrenheit (formule : F = C * 9/5 + 32).
Correction :
temperatures = [12, 15, 8, 19, 22]
for celsius in temperatures:
fahrenheit = celsius * 9/5 + 32
print(celsius, "°C = ", fahrenheit, "°F")
Explication :
- On utilise une boucle
forpour parcourir chaque élément de la listetemperatures. - À chaque itération, la variable
celsiusprend la valeur d'une température. - On calcule
fahrenheitavec la formule. - On affiche le résultat.
Variante avec range :
for i in range(len(temperatures)):
fahrenheit = temperatures[i] * 9/5 + 32
print(temperatures[i], "°C = ", fahrenheit, "°F")
Erreurs fréquentes
- Oublier l'indentation : Les instructions dans la boucle doivent être indentées. Sinon, Python génère une erreur
IndentationError. - Boucle infinie avec
while: Si la condition ne devient jamais fausse, la boucle tourne sans fin. Exemple :while True:sansbreakou modification de la condition. - Confondre
foretwhile: Utiliseforquand tu parcours une séquence,whilequand tu attends une condition. - Modifier une liste en la parcourant : Évite d'ajouter ou supprimer des éléments d'une liste pendant que tu la parcours avec
for, cela peut causer des comportements inattendus.
À retenir
- Les boucles permettent de répéter des instructions.
forparcourt une séquence (liste, chaîne, etc.).whilerépète tant qu'une condition est vraie.range(n)génère les entiers de 0 à n-1.- Toujours indenter le bloc d'instructions.
- Pour lire un fichier CSV, utilise
csv.readeret une bouclefor.
Pour s'entraîner
Maintenant que tu as compris le cours, entraîne-toi avec les exercices et quiz disponibles sur AlloSeconde. Tu peux aussi consulter la fiche de révision pour mémoriser les points clés.
