Skip to content

Conditions et Boucles

Les conditions et les boucles sont la base de toute la programmation. Sans elles, un programme ne pourrait que faire des calculs simples dans l’ordre. Avec elles, vous pouvez :

  • Prendre des décisions : Afficher un message différent selon l’utilisateur
  • Répéter des tâches : Traiter 1000 fichiers sans écrire 1000 fois le même code
  • Créer de l’intelligence : Réagir différemment selon les situations

Exemples concrets d’utilisation :

  • Sites web : Afficher “Connecté” ou “Se connecter” selon l’utilisateur
  • Jeux vidéo : Vérifier si le joueur a perdu toutes ses vies
  • Applications : Envoyer une notification tous les jours
  • Scripts système : Vérifier l’état de tous les serveurs
  • E-commerce : Appliquer une réduction si le panier dépasse 100€

La structure if permet d’exécuter du code seulement si une condition est vraie.

age = 21
if age >= 21:
print("Vous êtes majeur")

Syntaxe : if condition:

Comment ça marche ?

  1. Python évalue age >= 21True ou False
  2. Si True, le code indenté s’exécute
  3. Si False, Python l’ignore et continue

L’indentation est obligatoire ! Les espaces avant print indiquent que cette ligne appartient au if.

Exemple réel : Système de connexion

mot_de_passe = "secret123"
if mot_de_passe == "secret123":
print("Accès autorisé")
# Ouvrir le tableau de bord
# Charger les données utilisateur

Utilisé dans :

  • Validation de formulaires
  • Systèmes d’authentification
  • Vérification de permissions
  • Contrôle d’accès aux fonctionnalités

Le else permet de gérer le cas contraire.

age = 16
if age >= 18:
print("Vous êtes majeur")
else:
print("Vous êtes mineur")

Syntaxe :

  • if condition: pour le cas vrai
  • else: pour le cas faux

Exemple réel : E-commerce

prix_panier = 85
if prix_panier >= 100:
print("Livraison gratuite !")
frais_livraison = 0
else:
print("Frais de livraison : 5€")
frais_livraison = 5
total = prix_panier + frais_livraison

Utilisé dans :

  • Calcul de prix avec conditions
  • Affichage d’interfaces utilisateur différentes
  • Gestion d’erreurs
  • Logique métier (règles d’entreprise)

Les conditions multiples : if…elif…else

Section titled “Les conditions multiples : if…elif…else”

Quand vous avez plus de 2 cas possibles, utilisez elif (sinon si).

note = 80
if note >= 90:
print("Excellent")
elif note >= 80:
print("Très bien")
elif note >= 70:
print("Bien")
elif note >= 60:
print("Passable")
else:
print("Insuffisant")

Syntaxe : elif signifie “sinon si”

Important : Python teste dans l’ordre et s’arrête dès qu’une condition est vraie.

Exemple réel : Système de tarification

kilometres = 150
if kilometres < 50:
tarif = 10
categorie = "Courte distance"
elif kilometres < 100:
tarif = 20
categorie = "Moyenne distance"
elif kilometres < 200:
tarif = 35
categorie = "Longue distance"
else:
tarif = 50
categorie = "Très longue distance"
print(f"{categorie} : {tarif}€")

Utilisé dans :

  • Systèmes de notation
  • Calcul d’impôts progressifs
  • Niveaux de difficulté dans les jeux
  • Classification de données
  • Systèmes de recommandation

Les opérateurs logiques permettent de tester plusieurs choses en même temps.

age = 25
permis = True
if age >= 18 and permis:
print("Vous pouvez conduire")
elif age >= 18 and not permis:
print("Vous devez passer le permis")
else:
print("Vous êtes trop jeune pour conduire")

Opérateurs logiques :

  • and : Les DEUX conditions doivent être vraies
  • or : AU MOINS UNE condition doit être vraie
  • not : Inverse la condition

Exemple réel : Validation d’un compte bancaire

age = 25
revenus_mensuels = 2000
historique_propre = True
if age >= 18 and revenus_mensuels >= 1500 and historique_propre:
print("Crédit approuvé")
montant_max = revenus_mensuels * 10
else:
print("Crédit refusé")

Exemple réel : Système d’alerte météo

temperature = 38
humidite = 85
vent = 45
if temperature > 35 and humidite > 80:
print("⚠️ Alerte canicule")
elif temperature < 0 or vent > 60:
print("⚠️ Alerte tempête")
else:
print("✅ Conditions normales")

Utilisé dans :

  • Validation de formulaires complexes
  • Systèmes de sécurité
  • Contrôle d’accès multi-critères
  • Intelligence artificielle (règles de décision)
  • Automatisation de tâches

Les boucles sont essentielles pour traiter des données en masse. Sans elles, impossible de créer des applications performantes.

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

Section titled “La boucle for : répéter un nombre fixe de fois”

La boucle for est utilisée quand vous savez combien de fois répéter.

Compter de 0 à 4 :

for i in range(5):
print(i) # Affiche 0, 1, 2, 3, 4

Compter de 1 à 5 :

for i in range(1, 6):
print(i) # Affiche 1, 2, 3, 4, 5

Compter de 2 en 2 :

for i in range(0, 11, 2):
print(i) # Affiche 0, 2, 4, 6, 8, 10

Syntaxe : range(debut, fin, pas)

Important : range(5) va de 0 à 4 (pas jusqu’à 5 !)

Exemple réel : Envoi d’emails en masse

utilisateurs = ["alice@mail.com", "bob@mail.com", "charlie@mail.com"]
for email in utilisateurs:
print(f"Envoi à {email}...")
# Code pour envoyer l'email
print("✓ Envoyé")

Exemple réel : Traitement de fichiers

fichiers = ["rapport1.txt", "rapport2.txt", "rapport3.txt"]
for fichier in fichiers:
print(f"Traitement de {fichier}...")
# Ouvrir le fichier
# Analyser le contenu
# Générer un résumé
print(f"✓ {fichier} traité")

Exemple réel : Génération de factures

for numero_facture in range(1000, 1010):
print(f"Génération de la facture #{numero_facture}")
# Créer un PDF
# Envoyer par email
# Enregistrer dans la base de données

Utilisé dans :

  • Traitement de données (big data)
  • Envoi de notifications
  • Génération de rapports
  • Backup de fichiers
  • Tests automatisés
  • Web scraping (extraction de données)
mot = "Python"
for lettre in mot:
print(lettre) # Affiche P, y, t, h, o, n

Exemple réel : Validation de mot de passe

mot_de_passe = "Ab12!xyz"
a_majuscule = False
a_chiffre = False
for caractere in mot_de_passe:
if caractere.isupper():
a_majuscule = True
if caractere.isdigit():
a_chiffre = True
if a_majuscule and a_chiffre and len(mot_de_passe) >= 8:
print("✓ Mot de passe valide")
else:
print("✗ Mot de passe trop faible")

Utilisé dans :

  • Validation de données
  • Analyse de texte
  • Cryptographie
  • Parsing de fichiers
  • Traitement du langage naturel (NLP)

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

Section titled “La boucle while : répéter tant qu’une condition est vraie”

Le while est utilisé quand vous ne savez pas combien de fois répéter à l’avance.

compteur = 0
while compteur < 5:
print(f"Compteur : {compteur}")
compteur += 1 # Équivalent à : compteur = compteur + 1

Attention : Si vous oubliez compteur += 1, la boucle ne s’arrêtera jamais (boucle infinie) !

Exemple réel : Jeu de devinette

nombre_secret = 42
tentatives = 0
while True:
reponse = int(input("Devinez le nombre : "))
tentatives += 1
if reponse == nombre_secret:
print(f"Bravo ! Trouvé en {tentatives} tentatives")
break
elif reponse < nombre_secret:
print("Trop petit !")
else:
print("Trop grand !")

Exemple réel : Connexion à un serveur

connexion_reussie = False
tentatives = 0
max_tentatives = 3
while not connexion_reussie and tentatives < max_tentatives:
print("Tentative de connexion...")
# Code de connexion
connexion_reussie = verifier_connexion()
tentatives += 1
if connexion_reussie:
print("✓ Connecté")
else:
print("✗ Échec après 3 tentatives")

Exemple réel : Monitoring de serveur

import time
while True:
etat = verifier_serveur()
if etat == "down":
print("⚠️ SERVEUR ARRÊTÉ ! Envoi d'alerte...")
envoyer_alerte()
break
else:
print("✓ Serveur opérationnel")
time.sleep(60) # Vérifier toutes les 60 secondes

Utilisé dans :

  • Serveurs web (boucle d’écoute)
  • Jeux vidéo (game loop)
  • Robots et IoT (boucle de contrôle)
  • Monitoring et surveillance
  • Interfaces utilisateur
  • Traitements asynchrones

Contrôler les boucles : break et continue

Section titled “Contrôler les boucles : break et continue”

Ces mots-clés permettent de contrôler finement l’exécution des boucles.

break : Arrête complètement la boucle

for i in range(10):
if i == 5:
break # Sort de la boucle quand i vaut 5
print(i) # Affiche 0, 1, 2, 3, 4

Exemple réel : Recherche dans une liste

utilisateurs = ["Alice", "Bob", "Charlie", "David"]
recherche = "Charlie"
trouve = False
for utilisateur in utilisateurs:
if utilisateur == recherche:
print(f"✓ {recherche} trouvé !")
trouve = True
break # Pas besoin de continuer
if not trouve:
print(f"✗ {recherche} introuvable")

continue : Passe à l’itération suivante

for i in range(10):
if i % 2 == 0:
continue # Saute les nombres pairs
print(i) # Affiche seulement 1, 3, 5, 7, 9

Exemple réel : Traitement de fichiers avec erreurs

fichiers = ["ok.txt", "corrompu.txt", "valide.txt"]
for fichier in fichiers:
if fichier == "corrompu.txt":
print(f"⚠️ {fichier} ignoré (corrompu)")
continue # Passe au suivant
print(f"✓ Traitement de {fichier}")
# Traiter le fichier

Exemple réel : Validation de données

ages = [25, -5, 30, 150, 42, 0]
for age in ages:
if age < 0 or age > 120:
print(f"Âge invalide : {age} (ignoré)")
continue
print(f"Âge valide : {age} ans")
# Traiter cet âge

Utilisé dans :

  • Validation et nettoyage de données
  • Gestion d’erreurs
  • Optimisation de performance
  • Filtrage de résultats
  • Parsing de fichiers complexes
StructureSyntaxeUsageExemple réel
Condition simpleif condition:Teste une seule choseVérifier si connecté
Condition doubleif... else:Deux cas possiblesLivraison gratuite ou non
Conditions multiplesif... elif... else:Plusieurs casSystème de notation
Boucle forfor i in range(n):Répéter n foisEnvoyer 100 emails
Boucle whilewhile condition:Répéter tant que vraiServeur en écoute
Arrêter bouclebreakSort de la boucleRecherche trouvée
Sauter itérationcontinuePasse au tour suivantIgnorer données invalides
# Vérifier l'état de plusieurs serveurs
serveurs = ["web1", "web2", "database", "cache"]
for serveur in serveurs:
if verifier_ping(serveur):
print(f"✓ {serveur} : Opérationnel")
else:
print(f"✗ {serveur} : ALERTE !")
envoyer_notification(f"Serveur {serveur} down")
# Nettoyer des données
donnees = [100, -999, 50, None, 75, 999999]
donnees_propres = []
for valeur in donnees:
if valeur is None or valeur < 0 or valeur > 10000:
continue # Ignorer les valeurs aberrantes
donnees_propres.append(valeur)
# Système de permissions
utilisateur_role = "admin"
if utilisateur_role == "admin":
afficher_tous_les_menus()
elif utilisateur_role == "moderateur":
afficher_menus_moderation()
else:
afficher_menus_basiques()

Cette évaluation rapide (3 minutes) va vous permettre de vérifier votre compréhension des conditions et boucles en Python.

Instructions :

  • 🕒 Temps limité : 3 minutes
  • 🎯 Seuil de réussite : 80%
  • 💡 Les réponses seront expliquées à la fin

À vous de jouer ! 🚀



Exercice 1 : Vérification d'âge

Énoncé : Créez un programme qui demande l’âge d’un utilisateur et affiche un message approprié selon les critères :

  • Moins de 13 ans : “Enfant”
  • Entre 13 et 17 ans : “Adolescent”
  • Entre 18 et 59 ans : “Adulte”
  • 60 ans et plus : “Senior”

Exemple d’exécution :

age = int(input("Entrez votre âge : "))
# Votre code ici
Voir la solution
age = int(input("Entrez votre âge : "))
if age < 0 or age > 150:
print("❌ Âge invalide")
elif age < 13:
print("👶 Enfant")
elif age < 18:
print("🧑 Adolescent")
elif age < 60:
print("👨 Adulte")
else:
print("👴 Senior")

Résultat attendu :

Entrez votre âge : 25
👨 Adulte

Exercice 2 : Table de multiplication

Énoncé : Créez un programme qui affiche la table de multiplication d’un nombre donné, de 1 à 10.

Exemple d’exécution :

nombre = 7
# Votre code ici
Voir la solution
nombre = 7
print(f"📊 Table de multiplication de {nombre}")
print("-" * 30)
for i in range(1, 11):
resultat = nombre * i
print(f"{nombre} × {i} = {resultat}")

Résultat attendu :

📊 Table de multiplication de 7
------------------------------
7 × 1 = 7
7 × 2 = 14
7 × 3 = 21
7 × 4 = 28
7 × 5 = 35
7 × 6 = 42
7 × 7 = 49
7 × 8 = 56
7 × 9 = 63
7 × 10 = 70

Exercice 3 : Calculatrice de remise

Énoncé : Créez un programme qui calcule le prix final d’un panier avec les règles suivantes :

  • Moins de 50€ : pas de remise
  • Entre 50€ et 99€ : 10% de remise
  • Entre 100€ et 199€ : 20% de remise
  • 200€ et plus : 30% de remise

Affichez le montant initial, la remise et le prix final.

Exemple d’exécution :

prix_panier = 150
# Votre code ici
Voir la solution
prix_panier = 150
print(f"💰 Montant du panier : {prix_panier}€")
if prix_panier < 50:
remise = 0
pourcentage = 0
elif prix_panier < 100:
remise = prix_panier * 0.10
pourcentage = 10
elif prix_panier < 200:
remise = prix_panier * 0.20
pourcentage = 20
else:
remise = prix_panier * 0.30
pourcentage = 30
prix_final = prix_panier - remise
print(f"🎁 Remise ({pourcentage}%) : -{remise:.2f}€")
print(f"✅ Prix final : {prix_final:.2f}€")

Résultat attendu :

💰 Montant du panier : 150€
🎁 Remise (20%) : -30.00€
✅ Prix final : 120.00€

Exercice 4 : Compteur de voyelles

Énoncé : Créez un programme qui compte le nombre de voyelles dans une phrase donnée. Utilisez une boucle for pour parcourir chaque lettre.

Exemple d’exécution :

phrase = "Python est un langage génial"
# Votre code ici
Voir la solution
phrase = "Python est un langage génial"
voyelles = "aeiouAEIOU"
compteur = 0
print(f"📝 Phrase : {phrase}")
print(f"🔍 Analyse en cours...")
for lettre in phrase:
if lettre in voyelles:
compteur += 1
print(f"✅ Nombre de voyelles : {compteur}")

Résultat attendu :

📝 Phrase : Python est un langage génial
🔍 Analyse en cours...
✅ Nombre de voyelles : 10

Exercice 5 : Jeu du FizzBuzz

Énoncé : Créez le jeu classique FizzBuzz : afficher les nombres de 1 à 30, mais :

  • Si le nombre est divisible par 3 : afficher “Fizz”
  • Si le nombre est divisible par 5 : afficher “Buzz”
  • Si le nombre est divisible par 3 ET 5 : afficher “FizzBuzz”
  • Sinon : afficher le nombre

Exemple d’exécution :

# Votre code ici
Voir la solution
print("🎮 Jeu FizzBuzz (1 à 30)")
print("-" * 40)
for nombre in range(1, 31):
if nombre % 3 == 0 and nombre % 5 == 0:
print(f"{nombre:2} → FizzBuzz")
elif nombre % 3 == 0:
print(f"{nombre:2} → Fizz")
elif nombre % 5 == 0:
print(f"{nombre:2} → Buzz")
else:
print(f"{nombre:2}{nombre}")

Résultat attendu :

🎮 Jeu FizzBuzz (1 à 30)
----------------------------------------
1 → 1
2 → 2
3 → Fizz
4 → 4
5 → Buzz
6 → Fizz
7 → 7
8 → 8
9 → Fizz
10 → Buzz
11 → 11
12 → Fizz
13 → 13
14 → 14
15 → FizzBuzz
...

Exercice 6 : Validation de mot de passe

Énoncé : Créez un programme qui vérifie qu’un mot de passe respecte ces critères :

  • Au moins 8 caractères
  • Contient au moins une majuscule
  • Contient au moins un chiffre
  • Contient au moins un caractère spécial (!@#$%^&*)

Utilisez des boucles et des conditions combinées.

Exemple d’exécution :

mot_de_passe = "Python2024!"
# Votre code ici
Voir la solution
mot_de_passe = "Python2024!"
# Critères
longueur_ok = len(mot_de_passe) >= 8
a_majuscule = False
a_chiffre = False
a_special = False
caracteres_speciaux = "!@#$%^&*"
# Vérification avec boucle
for caractere in mot_de_passe:
if caractere.isupper():
a_majuscule = True
if caractere.isdigit():
a_chiffre = True
if caractere in caracteres_speciaux:
a_special = True
# Affichage des résultats
print("🔒 Validation du mot de passe")
print("-" * 40)
print(f"Mot de passe : {mot_de_passe}")
print()
print(f"{'' if longueur_ok else ''} Au moins 8 caractères : {len(mot_de_passe)}")
print(f"{'' if a_majuscule else ''} Contient une majuscule")
print(f"{'' if a_chiffre else ''} Contient un chiffre")
print(f"{'' if a_special else ''} Contient un caractère spécial")
print()
if longueur_ok and a_majuscule and a_chiffre and a_special:
print("✅ Mot de passe VALIDE")
else:
print("❌ Mot de passe INVALIDE")

Résultat attendu :

🔒 Validation du mot de passe
----------------------------------------
Mot de passe : Python2024!
✅ Au moins 8 caractères : 11
✅ Contient une majuscule
✅ Contient un chiffre
✅ Contient un caractère spécial
✅ Mot de passe VALIDE

Exercice 7 : Somme des nombres pairs

Énoncé : Calculez la somme de tous les nombres pairs entre 1 et 100 en utilisant une boucle. Utilisez continue pour ignorer les nombres impairs.

Exemple d’exécution :

# Votre code ici
Voir la solution
somme = 0
compteur = 0
print("🔢 Calcul de la somme des nombres pairs (1-100)")
print("-" * 50)
for nombre in range(1, 101):
if nombre % 2 != 0:
continue # Ignore les impairs
somme += nombre
compteur += 1
print(f"Nombres pairs trouvés : {compteur}")
print(f"Somme totale : {somme}")

Résultat attendu :

🔢 Calcul de la somme des nombres pairs (1-100)
--------------------------------------------------
Nombres pairs trouvés : 50
Somme totale : 2550

Exercice 8 : Menu interactif

Énoncé : Créez un menu interactif avec une boucle while qui s’arrête seulement quand l’utilisateur choisit “Quitter”. Le menu propose :

  1. Afficher la date
  2. Afficher l’heure
  3. Quitter

Exemple d’exécution :

# Votre code ici
Voir la solution
from datetime import datetime
continuer = True
print("=" * 40)
print(" MENU PRINCIPAL")
print("=" * 40)
while continuer:
print("\n📋 Choisissez une option :")
print("1. Afficher la date")
print("2. Afficher l'heure")
print("3. Quitter")
choix = input("\nVotre choix (1-3) : ")
if choix == "1":
date_actuelle = datetime.now().strftime("%d/%m/%Y")
print(f"📅 Date : {date_actuelle}")
elif choix == "2":
heure_actuelle = datetime.now().strftime("%H:%M:%S")
print(f"⏰ Heure : {heure_actuelle}")
elif choix == "3":
print("\n👋 Au revoir !")
continuer = False
else:
print("❌ Choix invalide. Veuillez entrer 1, 2 ou 3.")
print("\n✅ Programme terminé.")

Résultat attendu :

========================================
MENU PRINCIPAL
========================================
📋 Choisissez une option :
1. Afficher la date
2. Afficher l'heure
3. Quitter
Votre choix (1-3) : 1
📅 Date : 01/01/2026
📋 Choisissez une option :
1. Afficher la date
2. Afficher l'heure
3. Quitter
Votre choix (1-3) : 3
👋 Au revoir !
✅ Programme terminé.


À propos de l'auteur

Riyad ODJOUADEExpert en cybersécurité & infrastructure

Je partage des guides techniques pratiques sur la cybersécurité, l'administration système et le développement web. Tous les contenus sont basés sur des expérimentations réelles.

*Dernière mise à jour : 29 Décembre 2025