Définition
Une boucle for est une structure de contrôle qui permet de répéter un bloc d'instructions un nombre de fois déterminé. Elle est utilisée pour parcourir une séquence (comme une liste de nombres, une chaîne de caractères) ou pour exécuter des instructions un nombre fixe de fois. En Python, la fonction range() est souvent utilisée avec les boucles for pour générer des séquences de nombres entiers.
range() et l'indentation de ton code pour éviter les erreurs logiques ou de syntaxe.
Méthode : La boucle for
Comprendre la syntaxe
La syntaxe générale d'une boucle for en Python est la suivante :
for variable in sequence:
# bloc d'instructions à répéter
instruction_1
instruction_2La variable prendra successivement chaque valeur de la sequence. Le bloc d'instructions doit être indenté (généralement 4 espaces).
Utiliser range()
La fonction range() est très utile pour générer des séquences de nombres entiers :
range(n): génère les entiers de $0$ à $n-1$. (Ex:range(5)donne $0, 1, 2, 3, 4$)range(debut, fin): génère les entiers dedebutàfin-1. (Ex:range(2, 6)donne $2, 3, 4, 5$)range(debut, fin, pas): génère les entiers dedebutàfin-1avec un certainpas. (Ex:range(1, 10, 2)donne $1, 3, 5, 7, 9$)
Définir la séquence
Choisissez la séquence à parcourir. Cela peut être une liste explicite (ex: [10, 20, 30]), une chaîne de caractères (ex: 'Python'), ou le plus souvent, une séquence générée par range().
Écrire le bloc d'instructions
Définissez les instructions qui doivent être répétées à chaque itération de la boucle. Ces instructions doivent être indentées. La variable de la boucle peut être utilisée à l'intérieur de ce bloc.
Exemple résolu
somme = 0forrange(1, 6) générera les nombres $1, 2, 3, 4, 5$.for i in range(1, 6):i à somme. Cette instruction doit être indentée. somme = somme + isomme.print("La somme est :", somme)somme = 0
for i in range(1, 6):
somme = somme + i
print("La somme est :", somme)L'exécution de ce code affichera :La somme est : 15Car $1+2+3+4+5 = 15$.Erreurs courantes avec range() et l'indentation
- Erreur d'intervalle avec
range(): Oublier querange(n)va de $0$ à $n-1$ et querange(debut, fin)va dedebutàfin-1. Le dernier nombre spécifié n'est jamais inclus. - Problèmes d'indentation : Ne pas indenter correctement le bloc d'instructions de la boucle
for, ou indenter des instructions qui ne devraient pas faire partie de la boucle. Python utilise l'indentation pour définir les blocs de code. - Variable non initialisée : Utiliser une variable (comme
sommeoucompteur) à l'intérieur de la boucle sans l'avoir initialisée avant la boucle. Cela peut entraîner une erreur ou un résultat incorrect. - Modifier la variable de boucle : Tenter de modifier la variable
i(ou autre) à l'intérieur de la bouclefor. Bien que Python ne l'interdise pas toujours, c'est une mauvaise pratique et cela ne changera pas le déroulement des itérations de la boucle.
Exercice type contrôle
On souhaite écrire un programme Python qui affiche les carrés des nombres pairs entre $2$ et $10$ inclus.
- Quelle séquence de nombres la fonction
range()doit-elle générer pour obtenir les nombres $2, 4, 6, 8, 10$ ? - Écrire le programme Python complet utilisant une boucle
forpour afficher ces carrés.
-
Pour obtenir les nombres $2, 4, 6, 8, 10$, nous devons commencer à $2$, aller jusqu'à $10$ inclus (donc la fin de
range()sera $11$), et utiliser un pas de $2$.La fonction
range()à utiliser est donc :range(2, 11, 2). -
Le programme Python complet est :
for nombre in range(2, 11, 2): carre = nombre * nombre print("Le carré de", nombre, "est", carre)Explication :
- La boucle
for nombre in range(2, 11, 2):va successivement attribuer à la variablenombreles valeurs $2, 4, 6, 8, 10$. - À chaque itération,
carre = nombre * nombrecalcule le carré du nombre actuel. print("Le carré de", nombre, "est", carre)affiche le résultat pour chaque nombre.
L'exécution de ce code affichera :
Le carré de 2 est 4 Le carré de 4 est 16 Le carré de 6 est 36 Le carré de 8 est 64 Le carré de 10 est 100 - La boucle
Questions fréquentes
Quelle est la différence entre une boucle for et une boucle while ?
for est utilisée quand on connaît à l'avance le nombre d'itérations (par exemple, parcourir une liste ou un range()). Une boucle while est utilisée quand le nombre d'itérations est inconnu et dépend d'une condition qui doit devenir fausse pour arrêter la boucle. En Seconde, on utilise principalement for pour les répétitions connues.Peut-on utiliser une boucle for pour parcourir une chaîne de caractères ?
mot = "Python"
for lettre in mot:
print(lettre)Affichera chaque lettre du mot sur une nouvelle ligne.Que se passe-t-il si la séquence est vide ?
range(5, 2) ou une liste vide []), le bloc d'instructions de la boucle for ne sera jamais exécuté. Le programme passera directement à l'instruction suivant la boucle.Est-il possible de sortir d'une boucle for avant la fin de la séquence ?
break pour sortir immédiatement de la boucle. Par exemple, pour arrêter de chercher un élément dès qu'il est trouvé :nombres = [1, 5, 8, 12, 3]
for n in nombres:
if n > 10:
print("Premier nombre supérieur à 10 trouvé :", n)
breakPour aller plus loin
Le passage en Seconde est difficile ?
Adil accompagne les élèves de Seconde, à domicile dans le Val d'Oise ou en ligne. Un seul prof, du premier cours jusqu'au Bac.