Boucle for Python - Le Guide Complet avec des Exemples

Article publié le jeudi 16 septembre 2021 et mis à jour le mercredi 3 avril 2024.

Boucle for Python

On a déjà vu les différentes manières de boucler en Python dans cet article sur les boucles en Python.

Voyons maintenant comment fonctionne la boucle for spécifiquement et à quoi elle ressemble.

En Python, une boucle for est utilisée pour itérer sur une collection itérable de valeurs, comme une liste, un tuple, un dictionnaire, un set ou une string.

Une boucle for en Python ressemble à ça :

for element in iterable:
  # contenu

Où :

  • element est un élément qui fait partie d’un itérable, comme une liste
  • iterable est un objet itérable qui peut être parcouru avec une boucle
  • contenu représente le corps de la boucle, c’est le code qui va être exécuté à chaque passage dans la boucle

Une boucle for va donc parcourir un iterable en assignant un par un chaque élément qui compose l’itérable dans une variable temporaire (appelée element dans notre exemple).

Schéma d'une boucle for en Python Organigramme d’une boucle for en Python

Découvrons sans plus tarder comment utiliser la boucle for en Python !

Comment faire une boucle for sur Python ?

Vous êtes peut-être familier avec les boucles for JavaScript, C, C++ ou Java :

for (let variable = 1; variable <= 10; i++)
  // corps de la boucle

En Python, on n’utilise pas la boucle for en 3 temps mais plutôt l’itération :

for <variable> in <itérable>:
  # corps de la boucle

L’itérable est une collection sur laquelle on peut boucler, par exemple une list ou un tuple.

Le corps de la boucle est, comme son nom l’indique, le bout de code qui sera exécuté à chaque passage dans la boucle.

La variable est la valeur courante de l’itérable, qui passe au suivant à chaque passage dans la boucle.

Ainsi, le code suivant :

langages = ['Python', 'Javascript', 'C']
for l in langages:
  print(l)

Aura comme output :

Python
JavaScript
C

Dans cet exemple, on a une liste de 3 langages, à chaque fois qu’on passe dans la boucle, l prend une valeur de la liste langages différente. En commençant par la première, “Python”, puis la deuxième, “Javascript” et finit par “C”. Une fois l’itération finie sur tous les éléments de la liste, la boucle est finie et Python exécute le code sur la ligne suivante.

Comment parcourir un dictionnaire avec une boucle for en Python ?

En Python, quand on itère sur un dict avec une boucle for, la variable de boucle prend la valeur de la clé du dictionnaire.

mon_dictionnaire = {'nom': 'Python', 'createur': 'Guido van Rossum', 'version': 3}
for variable_iteration in mon_dictionnaire:
  print(variable_iteration)

Donnera à l’écran :

nom
createur
version

Si on veut boucler sur les valeurs du dictionnaire et non pas ses clés, on doit faire une référence au dictionnaire en utilisant la clé :

mon_dictionnaire = {'nom': 'Python', 'createur': 'Guido van Rossum', 'version': 3}
for variable_iteration in mon_dictionnaire:
  print(mon_dictionnaire[variable_iteration])

Ce qui donnera, comme voulu :

Python
Guido van Rossum
3

Mais on peut aussi itérer sur les valeurs d’un dictionnaire Python en utilisant la méthode .values() :

mon_dictionnaire = {'nom': 'Python', 'createur': 'Guido van Rossum', 'version': 3}
for variable_iteration in mon_dictionnaire.values():
    print(variable_iteration)

Boucler sur les clés et les valeurs d’un dictionnaire Python

En Python, on peut aussi boucler simultanément sur les clés et les valeurs d’un dictionnaire pour utiliser ces deux éléments dans le corps d’une boucle for grâce à la méthode built-in items().

Parce qu’on boucler sur un tuple en utilisant l‘“unpacking” de Python :

a, b = (1, 2)
print(a, b)

for c, d in [(1, 2), (3, 4), (5, 6)]:
  print(c, d)

En sachant qu’on peut unpacker les 2 valeurs d’un tuple simultanément, il faudrait qu’on puisse représenter notre duo key et value, sous forme de tuple (key, value).

Bonne nouvelle, on peut utiliser items() pour créer une liste de tuple et obtenir chacun des couples clé/valeur de notre dictionnaire !

mon_dictionnaire = {'nom': 'Python', 'createur': 'Guido van Rossum', 'version': 3}
for cle, valeur in mon_dictionnaire.items():
  print(cle, " : ", valeur)

Qui donnera

nom :  Python
createur : Guido van Rossum
version : 3

Comment itérer sur une liste avec une boucle for en Python ?

En Python, la boucle for permet d’itérer sur une séquence de valeurs comme une liste. On peut parcourir une liste avec une boucle for en Python en utilisant la syntaxe for élément in ma_liste: ....

Par exemple, on peut utiliser la boucle for pour afficher tous les éléments d’une liste en Python :

lettres = ['a', 'b', 'c', 'd', 'e']

for lettre in lettres:
  print(lettre)

Ce qui donnera :

a
b
c
d
e

Comment itérer sur un tuple avec une boucle for en Python ?

Un tuple est un des types natifs pour stocker des variables en Python. On peut utiliser la boucle for sur un tuple comme ce type d’objet est itérable.

Par exemple, pour afficher chaque élément d’un tuple avec une boucle for en Python :

site = ("comment", "coder", ".com")
for mot in site:
  print(mot)

Ce qui donnera :

comment
coder
.com

Comment itérer sur un set avec une boucle for en Python ?

Vous pouvez boucler sur un set et afficher les éléments qu’il contient en utilisant une boucle for comme ceci :

mots = {"comment", "coder", ".com"}

for mot in mots:
    print(mot)

Ce qui donnera :

comment
coder
.com

Comment itérer sur une string avec une boucle for en Python ?

On peut boucler sur des strings avec la boucle for comme les chaînes de caractères sont itérables en Python. On utilise la syntaxe for mon_element in ma_string: ... suivi de l’expression que vous voulez exécuter à chaque passage dans la boucle for.

site = "CommentCoder.com"

for lettre in site:
  print(lettre, end="")

💡 Ici, end="" permet de dire qu’on va afficher un caractère vide "" plutôt qu’un retour à la ligne

Ce qui donnera :

CommentCoder.com

Comment itérer sur des nombres avec une boucle for en Python ?

On utilise la fonction native range pour boucler sur des nombres avec une boucle for. C’est un cas d’utilisation fréquent de la boucle for vue la syntaxe particulière du for en Python.

Pour boucler rapidement un certain nombre de fois en Python, on aura donc une boucle qui ressemble à ça :

for i in range(5):
    print(i)

Ce qui donne :

0
1
2
3
4

💡 Si vous souhaitez savoir comment utiliser range dans une boucle for avec for i in range(...), pensez à consulter mon article dédié à la fonction built-in range en python.

Pourquoi la boucle for est différente en Python ?

La boucle for en Python fonctionne un peu différemment que les boucles for d’autres langages.

Comprendre comment elles fonctionnent est donc essentiel pour devenir meilleur en Python.

Les boucles for en Python sont des boucles définies en opposition aux boucles while qui sont indéfinies.

Elles sont similaires aux boucles for des autres langages comme le C, C++, JavaScript ou Java mais fonctionne un peu différemment.

Contrôler la boucle for avec l’instruction continue

Dans la boucle for en Python, l’instruction continue sert à passer à la prochaine itération sans exécuter les lignes restantes du corps dans la boucle.

for numero in [1, 2, 3, 4]:
  if numero % 2 == 0:
    continue
  print(numero)  # Seuls les nombres impairs 1 et 3 seront affichés

Comment sortir d’une boucle for en Python ?

Pour arrêter une boucle for en python et en sortir, on utilise l’instruction break.

En Python, l’instruction break permet de terminer l’itération de la boucle complètement et passe à la ligne de code suivante, en dehors de la boucle.

for numero in [1, 2, 3, 4]:
  if i > 2:
      break
  print(numero)  # affiche 1 et 2

L’instruction else avec la boucle for

En Python, on peut aussi utiliser else dans une boucle for. Le bout de code contenu dans le else sera exécutée après la fin de l’itération du for si on n’a pas rencontré de break dans l’exécution du corps de la boucle.

Ce qui se traduit par :

for numero in [1, 2, 3, 4]:
  print(numero)
else:
  print('Itération complétée.')  # va s'exécuter
for numero in [1, 2, 3, 4]:
    if i > 2:
        break
    print(numero)
else:
    print('Itération complétée.')  # ne va PAS s'exécuter

Les boucles imbriquées for en Python

Les boucles imbriquées sont des boucles dans des boucles. En Python on peut utiliser une (ou plusieurs) boucle(s) for dans une autre boucle for.

Voici un exemple de boucle imbriqué for en Python :

for i in range(2):
  for j in range(3):
    print("i =", i, "j =", j)

Ce qui donne :

i = 0 j = 0
i = 0 j = 1
i = 0 j = 2
i = 1 j = 0
i = 1 j = 1
i = 1 j = 2

On boucle 2 fois grâce à la fonction range ce qui nous donne un élément i. Ensuite on boucle 3 fois pour avoir j. Ça donne 2 x 3 combinaisons donc 6 résultats.

Allez plus loin en Python avec la boucle for

La boucle for n’a maintenant plus de secrets pour vous ! Ensemble, nous avons vu comment utiliser la boucle définie for, comment elle fonctionne de manière la plus basique et comment utiliser la puissance de Python pour boucler sur différents types d’objets.

Vous voulez en apprendre plus sur les autres types de boules en Python ? Alors pensez à consulter mon article sur les boucles while.

Voici certains des articles les plus populaires en Python :

Le Guide Ultime pour apprendre Python en 2024

7 idées de projets en Python pour débutants

Les 10 meilleurs livres pour apprendre Python en 2024

Comment créer un Bot Discord en Python ?

Comment Coder

Je m'appelle Thomas. J'ai commencé à coder dans mon enfance. Depuis ma sortie de la première promo de l'École 42, j'ai développé des centaines d'applications et sites web. Sur ce blog, je vous donne les meilleurs conseils et astuces pour apprendre comment apprendre à coder efficacement.