Les boucles FOR
1. Principe de la Boucle for
La boucle for est utilisée pour l'itération, c'est-à-dire pour parcourir ou traiter chaque élément d'une collection (comme une liste de nombres, une chaîne de caractères, ou une plage de valeurs).C'est l'équivalent de l'ordre : "Pour chaque élément dans cet ensemble, exécute cette séquence d'instructions."
2. Syntaxe et Mécanisme
La boucle for fonctionne en utilisant une variable temporaire, souvent appelée variable d'itération, qui prend successivement la valeur de chaque élément de la séquence.
Syntaxe :
for <variable_iteration> in <sequence_ou_collection>:
<bloc_de_code_à_répéter_pour_chaque_élément>
Rappel : Le bloc de code à répéter doit être indenté.
A. Parcourir une Séquence de Nombres (Le Rôle de range())
L'outil le plus courant pour définir le nombre de répétitions d'une boucle for est la fonction range(). Elle génère une séquence d'entiers.
Fonction range() |
Description | Séquence générée |
|---|---|---|
range(N) |
Commence à 0 et va jusqu'à N-1. | $0, 1, 2, ..., N-1$ |
range(début, fin) |
Commence à début et va jusqu'à fin-1. |
début, . . ., fin-1 |
range(début, fin, pas) |
Va de début à fin-1 en sautant de pas. |
1,3,5, . . . |
Exemples :
x
# Exemple 1 : 5 répétitions (i prendra les valeurs 0, 1, 2, 3, 4)for i in range(5): print("Tour de boucle numéro :", i)# Exemple 2 : Compter de 1 à 10for k in range(1, 11): print(k) # Affiche 1, 2, 3, ..., 10# Exemple 3 : Compter de 0 à 10 avec un pas de 2 (0, 2, 4, 6, 8, 10)for nombre in range(0, 11, 2): print(nombre)3. Parcourir d'autres collections
La puissance de la bouclefor en Python réside dans sa capacité à itérer directement sur des objets, sans se préoccuper des indices (contrairement à d'autres langages).
A. Parcourir une Chaîne de Caractères (str)
Une chaîne est une séquence de caractères. La boucle for va visiter chaque caractère, un par un.
Exemple Python
xxxxxxxxxx5
mot = "Python"# 'lettre' prend successivement les valeurs 'P', 'y', 't', 'h', 'o', 'n'for lettre in mot: print("J'ai trouvé la lettre :", lettre)B. Parcourir une Liste (Vue rapide)
Bien que les listes soient un chapitre en soi, il est essentiel de savoir qu'elles sont l'objet d'itération le plus fréquent :
Exemple Python
xxxxxxxxxx7
liste_scores = [10, 25, 8, 40]total = 0for score in liste_scores: total = total + score print("Le score total est :", total) # Affiche 834. for et les Indices (Accès par position)
Parfois, vous avez besoin à la fois de l'élément et de sa position (son indice) dans la séquence.
On utilise alors la fonction enumerate() ou une combinaison de range() et de la fonction len().
A. Utilisation de range(len())
La fonction len(collection) renvoie la longueur (le nombre d'éléments) d'une collection. On combine range() et len() pour obtenir les indices :
Exemple Python
xxxxxxxxxx8
villes = ["Paris", "Lyon", "Marseille"]longueur = len(villes) # longueur = 3# i prendra les indices 0, 1, 2for i in range(longueur): # On accède à l'élément via son indice i print(f"La ville à l'indice {i} est {villes[i]}.") # v[i] est la notation pour accéder à l'élément à l'indice iB. Utilisation de enumerate()
enumerate() fournit l'indice et l'élément simultanément.
Exemple Python
xxxxxxxxxx5
villes = ["Paris", "Lyon", "Marseille"]# La boucle fournit deux variables à chaque tour : l'indice (idx) et l'élément (ville)for idx, ville in enumerate(villes): print(f"La ville n°{idx + 1} est {ville}.")5. Boucles imbriquées
Une boucle imbriquée est une boucle située à l'intérieur d'une autre boucle. Le code de la boucle interne est exécuté complètement pour chaque itération de la boucle externe. C'est essentiel pour traiter des structures à deux dimensions, comme des tableaux ou des coordonnées.
Exemple Python
xxxxxxxxxx6
# Exemple de tableau de multiplication 3x3for i in range(1, 4): # Boucle externe : i = 1, 2, 3 for j in range(1, 4): # Boucle interne : j = 1, 2, 3 (répétée 3 fois) produit = i * j print(f"{i} x {j} = {produit}") print("---") # Séparateur après chaque ligne (fin de la boucle interne)