Explication de la leçon
Après cette leçon, tu seras capable de :
range() pour la répétition numérique et anticiper sa valeur d'arrêt exclusive.enumerate() lorsqu'un numéro et une valeur sont tous deux nécessaires.Les boucles for en Python itèrent généralement directement sur les valeurs :
for service in services:
print(service)C'est souvent plus clair que de gérer manuellement des indices. Utilise range() lorsque le problème porte réellement sur des nombres, des positions ou un nombre fixe de répétitions.
range(start, stop) inclut start mais s'arrête avant stop. Un troisième argument définit le pas :
range(2, 9, 2)produit 2, 4, 6 et 8.
Lorsque tu as besoin simultanément d'un numéro d'affichage et de la valeur, enumerate(values, start=1) est généralement plus clair que range(len(values)).
Les boucles mettent aussi couramment à jour des totaux ou des compteurs. Initialise l'accumulateur avant la boucle, mets-le à jour à l'intérieur du bloc, et utilise le résultat final après la boucle.
Les valeurs de séquence fournies dans cette leçon servent d'entrées pour s'entraîner aux boucles. Les opérations complètes sur les listes sont abordées dans l'unité sur les structures de données.
Les variables de boucle reçoivent chaque valeur une par une.
regions = ["us", "eu", "apac"]
for region in regions:
print(f"Region: {region}")Sortie :
Region: us
Region: eu
Region: apacAucun indice n'est nécessaire car la tâche concerne les valeurs de région.
La valeur d'arrêt n'est pas incluse.
for attempt in range(1, 4):
print(f"Attempt {attempt}")Sortie :
Attempt 1
Attempt 2
Attempt 3La boucle s'arrête avant 4.
Le troisième argument contrôle l'écart entre les valeurs générées.
for port in range(9000, 9005, 2):
print(port)Sortie :
9000
9002
9004La séquence avance de deux à chaque fois.
enumerate()enumerate() te donne à la fois un compteur et la valeur courante.
workers = ["api", "queue", "mailer"]
for number, worker in enumerate(workers, start=1):
print(f"{number}. {worker}")Sortie :
1. api
2. queue
3. mailerLa numérotation affichée commence à un sans arithmétique manuelle d'index.
Initialise l'accumulateur avant la boucle.
durations = [12, 18, 15]
total = 0
for duration in durations:
total += duration
print(f"Total: {total}")Sortie :
Total: 45Chaque itération ajoute une durée au total cumulé.
| Besoin | Boucle privilégiée |
|---|---|
| Travailler avec chaque valeur | for item in items |
| Répéter sur des nombres | for number in range(...) |
| Numéroter chaque valeur | for number, item in enumerate(...) |
| Construire un total | Initialiser avant la boucle, mettre à jour à l'intérieur |
range() soit incluse.