Initialisation des systèmes...

Baptiste.Dev
Retour aux notes
LangagesDébutantSérie : Python

Python : Structures de contrôle

Conditions (if/elif/else), boucles (for, while) et les compréhensions, l'écriture idiomatique de Python.

3 min de lecture
Mis à jour hier
pythonbouclesconditionsforwhilecomprehension

Python : Structures de contrôle

Le flux d'exécution en Python : conditions, boucles, et les compréhensions qui condensent une boucle en une expression.


# Les conditions

if, elif (else if), else. Le bloc est délimité par l'indentation.

if score > 90:
    mention = "excellent"
elif score > 50:
    mention = "correct"
else:
    mention = "insuffisant"

Python n'a pas d'opérateur ternaire à la ?:, mais une forme lisible :

statut = "adulte" if age >= 18 else "mineur"

# La boucle for

En Python, for parcourt un itérable (liste, chaîne, dict...), pas un compteur. Pas de for (i = 0; ...).

for nom in ["Alice", "Bob"]:
    print(nom)
 
for lettre in "abc":
    print(lettre)               # a, b, c

Pour un compteur, on utilise range :

for i in range(5):              # 0, 1, 2, 3, 4
    print(i)
 
range(2, 10, 2)                 # de 2 à 8 par pas de 2

Et enumerate quand il faut l'index et la valeur :

for i, nom in enumerate(["Alice", "Bob"]):
    print(f"{i} : {nom}")       # "0 : Alice", "1 : Bob"

# La boucle while

Tourne tant que la condition est vraie. break sort, continue passe à l'itération suivante.

stock = 3
while stock > 0:
    print(f"reste {stock}")
    stock -= 1                  # pas de stock-- en Python

# Les compréhensions

C'est la signature de Python : construire une liste (ou un dict, un set) en une seule expression, à partir d'une boucle et d'un filtre optionnel.

# Au lieu de :
carres = []
for n in range(10):
    carres.append(n * n)
 
# On écrit :
carres = [n * n for n in range(10)]
 
# Avec un filtre :
pairs = [n for n in range(10) if n % 2 == 0]    # [0, 2, 4, 6, 8]
 
# Ça marche aussi pour les dict et les set :
carres_dict = {n: n * n for n in range(5)}      # {0: 0, 1: 1, 2: 4, ...}

Une compréhension bien lisible remplace avantageusement une boucle for de 3 lignes. Mais au-delà d'une condition ou deux, repasse à une boucle classique : une compréhension illisible ne rend service à personne.


# La suite