🐍 Python : Structures de contrôle

Les structures de contrôle permettent de diriger le flux d'exécution d'un programme Python. Elles vous permettent de créer des logiques conditionnelles et des boucles pour des programmes plus complexes et puissants.

📑 Sommaire

🔀 Conditions

Les instructions conditionnelles permettent d'exécuter différentes portions de code selon qu'une condition est vraie ou fausse.

# Structure if-elif-else
age = 18

if age < 18:
    print("Vous êtes mineur")
elif age == 18:
    print("Vous venez tout juste d'être majeur")
else:
    print("Vous êtes majeur")

# Opérateurs de comparaison
# == égal à
# != différent de
# < inférieur à
# > supérieur à
# <= inférieur ou égal à
# >= supérieur ou égal à

# Opérateurs logiques
# and : les deux conditions doivent être vraies
# or : au moins une condition doit être vraie
# not : inverse la condition

if age >= 18 and age <= 25:
    print("Vous êtes un jeune adulte")

🔄 Boucles for

La boucle for permet d'itérer sur une séquence (liste, tuple, chaîne de caractères, etc.).

# Boucle sur une liste
fruits = ["pomme", "banane", "orange"]
for fruit in fruits:
    print(f"J'aime manger des {fruit}s")

# Boucle avec range pour générer une séquence
for i in range(5):  # 0, 1, 2, 3, 4
    print(i)

# Boucle avec range et arguments personnalisés
for i in range(2, 10, 2):  # 2, 4, 6, 8
    print(i)

# Énumération pour avoir l'index et la valeur
for index, fruit in enumerate(fruits):
    print(f"{index+1}. {fruit}")

🔄 Boucles while

La boucle while s'exécute tant qu'une condition est vraie.

# Boucle while simple
compteur = 0
while compteur < 5:
    print(compteur)
    compteur += 1

# Boucle avec condition et modification
mot_de_passe = ""
while mot_de_passe != "secret":
    mot_de_passe = input("Entrez le mot de passe : ")
    
# Boucle infinie avec break
while True:
    reponse = input("Voulez-vous continuer ? (o/n) : ")
    if reponse.lower() == 'n':
        break

🧠 Compréhensions

Les compréhensions permettent de créer des listes, des dictionnaires ou des ensembles de manière concise.

# Compréhension de liste
nombres = [1, 2, 3, 4, 5]
carres = [x**2 for x in nombres]  # [1, 4, 9, 16, 25]

# Compréhension avec condition
pairs = [x for x in nombres if x % 2 == 0]  # [2, 4]

# Compréhension de dictionnaire
carre_dict = {x: x**2 for x in nombres}  # {1:1, 2:4, 3:9, 4:16, 5:25}

# Compréhension d'ensemble
lettres = {c for c in "abracadabra"}  # {'a', 'b', 'c', 'd', 'r'}

🛑 Contrôle de boucles

Python offre des instructions pour contrôler le flux d'exécution des boucles.

# Break - sort complètement de la boucle
for i in range(10):
    if i == 5:
        break
    print(i)  # Affiche 0, 1, 2, 3, 4

# Continue - passe à l'itération suivante
for i in range(10):
    if i % 2 == 0:
        continue
    print(i)  # Affiche 1, 3, 5, 7, 9

# Else avec for/while - s'exécute si la boucle se termine normalement
for i in range(5):
    print(i)
else:
    print("Boucle terminée normalement")

# Else ne s'exécute pas si la boucle est interrompue par break
for i in range(5):
    if i == 3:
        break
    print(i)
else:
    print("Ce message ne s'affichera pas")
🎁 Bonus : Contrôle avancé

Utilisez le motif match/case (à partir de Python 3.10) pour des structures de contrôle plus élégantes :

# Pattern matching (Python 3.10+)
def analyser_type(valeur):
    match valeur:
        case int():
            return "C'est un entier"
        case str():
            return "C'est une chaîne"
        case list():
            return f"C'est une liste de {len(valeur)} éléments"
        case _:
            return "Type inconnu"

# Utilisation
print(analyser_type(42))
print(analyser_type("hello"))
print(analyser_type([1, 2, 3]))
🏠 Retour au sommaire général