Les Boucles For en Python

Article mis à jour le Monday, October 18, 2021.

Boucle for Python

Les boucles for en Python fonctionnent 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.

Découvrons sans plus tarder comment utiliser les boucles for en Python !

Comment fonctionnent les boucles for en 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 executé à 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 execute le code sur la ligne suivante.

Le cas d’utilisation le plus frequent de la boucle for pour les debutants est de l’utiliser avec range. Si vous souhaitez savoir comment utiliser range dans une boucle for avec for i in range(...), pensez a consulter mon article dédié à la fonction built-in range en python.

Comment parcourir un dictionnaire 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éference 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 élements dans le corps d’une boucle for grâce à la méthode build-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 arrêter une boucle for en Python ?

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

continue

Dans les boucles en Python, l’instruction continue sert à passer à la prochaîne 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

for-else

En Python, on peut aussi utiliser else dans les boucles for. Le bout de code contenu dans le else sera executé après la fin de l’itération du for si on n’a pas rencontré de break dans l’éxecution 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'executer
for numero in [1, 2, 3, 4]:
    if i > 2:
        break
    print(numero)
else:
    print('Itération complétée.')  # ne va PAS s'executer

Allez plus loin avec les boucles for

Les boucles for n’ont 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.

Voici certains des articles les plus populaires en Python :

Le Guide Ultime pour Apprendre Python en 2021 7 idées de projets en Python pour débutants Les 10 meilleurs livres pour apprendre Python en 2021 Les 7 meilleurs livres Django en 2021 Comment créer un Bot Telegram en Python ? Comment créer un Bot Discord en Python ? Comment créer un Bot Instagram gratuitement avec Python ? Créer un Bot Twitter avec Python et AWS Lambda

APPRENEZ GRATUITEMENT À CODER EN MOINS DE 30 JOURS !
Vous voulez apprendre la programmation ?
Recevez mon ebook GRATUIT : "9 astuces pour apprendre à coder".
Découvrez si le code est fait pour vous !

Je m'appelle Thomas. Depuis ma sortie de la première promo de l'École 42, j'ai développé une des centaines d'applications et sites web. Sur ce blog, je vous apprends comment apprendre à coder pour devenir libre.