Structures de contrôle : conditions et boucles
Introduction
Vous travaillez comme assistant administratif dans une petite entreprise. Votre responsable vous demande d'automatiser le tri de dizaines de factures reçues chaque semaine.
Votre défi
Créer un script Python qui vérifie automatiquement si chaque facture est payée, en retard, ou à venir, puis qui traite chaque facture d'une liste sans avoir à écrire le même code des dizaines de fois.
Sans les structures de contrôle, un programme Python exécute ses instructions une par une, de haut en bas, sans jamais dévier ni se répéter. C'est comme suivre une recette de cuisine sans jamais pouvoir dire "si le plat est trop salé, ajoute de l'eau" ou "répète cette étape 5 fois". Les conditions et les boucles donnent à vos scripts la capacité de prendre des décisions et de répéter des actions — exactement ce dont on a besoin pour automatiser des tâches répétitives du quotidien.
Les conditions : faire des choix avec if / elif / else
Une condition permet à votre programme de choisir un chemin d'exécution selon qu'une expression est vraie ou fausse.
1age = 20
2
3if age < 18:
4 print("Mineur")
5elif age < 65:
6 print("Adulte")
7else:
8 print("Senior")Voici comment Python évalue ces conditions, étape par étape :
💡 À retenir : Python teste les conditions dans l'ordre. Dès qu'une condition est vraie, le bloc correspondant s'exécute et les suivantes sont ignorées.
Les opérateurs de comparaison
| Opérateur | Signification | Exemple | Résultat |
|---|---|---|---|
== | Égal à | 5 == 5 | True |
!= | Différent de | 5 != 3 | True |
< | Inférieur à | 3 < 5 | True |
> | Supérieur à | 3 > 5 | False |
<= | Inférieur ou égal à | 5 <= 5 | True |
>= | Supérieur ou égal à | 4 >= 5 | False |
⚠️ Attention : Ne confondez pas
=(affectation, donner une valeur) et==(comparaison, tester l'égalité). C'est l'une des erreurs les plus fréquentes chez les débutants !
Les boucles : répéter des actions
La boucle for
Elle permet de répéter une action pour chaque élément d'une séquence (liste, texte, plage de nombres...).
1factures = ["Facture A", "Facture B", "Facture C"]
2
3for facture in factures:
4 print(f"Traitement de : {facture}")La boucle while
Elle répète un bloc d'instructions tant qu'une condition reste vraie.
1compteur = 0
2
3while compteur < 3:
4 print(f"Tentative n°{compteur + 1}")
5 compteur += 1Voici la différence de logique entre les deux boucles :
🎯 En pratique : Utilisez
forquand vous connaissez à l'avance le nombre d'éléments à traiter (ex : une liste de fichiers). Utilisezwhilequand vous répétez une action jusqu'à ce qu'une condition change (ex : attendre une réponse valide de l'utilisateur).
Combiner conditions et boucles
Le vrai pouvoir de l'automatisation apparaît quand on combine les deux : parcourir une liste et prendre une décision pour chaque élément.
1factures = [
2 {"nom": "Facture A", "payee": True},
3 {"nom": "Facture B", "payee": False},
4 {"nom": "Facture C", "payee": False},
5]
6
7for f in factures:
8 if f["payee"]:
9 print(f"{f['nom']} : déjà réglée ✅")
10 else:
11 print(f"{f['nom']} : en attente de paiement ⏳")Comparatif rapide for vs while
| Critère | for | while |
|---|---|---|
| Usage typique | Parcourir une séquence connue | Répéter jusqu'à une condition |
| Risque de boucle infinie | Très faible | Élevé si mal codée |
| Lisibilité | Excellente pour des listes | Excellente pour des attentes |
| Exemple type | Traiter chaque fichier d'un dossier | Redemander une saisie valide |
Testez une condition vous-même
Modifiez la note et voyez quelle branche du if/elif/else serait exécutée.
Le saviez-vous ?
Le mot-clé 'elif' est une contraction de 'else if', propre à Python. D'autres langages comme JavaScript ou C nécessitent d'écrire 'else if' en deux mots !
— Documentation officielle Python
Attention aux pièges classiques
⚠️ Attention : Une boucle
whilemal conçue peut tourner indéfiniment si la condition ne devient jamais fausse. Vérifiez toujours que la variable testée évolue à chaque tour (ex :compteur += 1).
💡 À retenir : En Python, l'indentation (les espaces au début de ligne) définit les blocs de code. Une erreur d'indentation dans un
ifou une boucle provoque une erreur de syntaxe.
Mini-quiz
Que fait ce code : `if x == 5: print('ok')` ?
- 1Les conditions (if/elif/else) permettent à un programme de choisir un chemin d'exécution selon qu'une expression est vraie ou fausse.
- 2Les boucles (for pour une séquence connue, while pour une condition) permettent de répéter des actions sans dupliquer le code.
- 3Combiner conditions et boucles est la base de l'automatisation : parcourir des éléments et décider quoi faire pour chacun.