La boucle for en Python : l’instruction pour itérer efficacement

Les 3 points clés à retenir :

  • La boucle for permet d’itérer sur une séquence d’éléments (liste, tuple, chaîne, etc.) en exécutant un bloc de code pour chaque élément. Sa syntaxe concise et ses nombreux cas d’utilisation en font un outil incontournable.
  • La boucle while exécute un bloc d’instructions tant qu’une condition donnée est vraie. Elle convient lorsque le nombre d’itérations dépend d’un critère variable ou d’une entrée utilisateur.
  • Les instructions break, continue et else permettent de contrôler le flux d’exécution des boucles. Les compréhensions de listes offrent une alternative concise aux boucles for dans certains cas.

Présentation des boucles en Python

Les boucles représentent un concept fondamental en programmation. Elles permettent d’exécuter un même bloc d’instructions de manière répétée, jusqu’à ce qu’une condition particulière soit remplie. Python propose deux types principaux de boucles : la boucle for et la boucle while.

Les boucles Python

Qu’est-ce qu’une boucle sur Python ?

Une boucle désigne une structure de contrôle qui permet d’itérer, c’est-à-dire de répéter une suite d’instructions, un certain nombre de fois.

En Python, les boucles constituent un outil indispensable pour automatiser des tâches répétitives, parcourir des listes, traiter des données de manière itérative, etc.

La logique d’une boucle for

La boucle for itère sur une séquence d’éléments (liste, tuple, chaîne de caractères, etc.). À chaque itération, la variable de boucle prend la valeur de l’élément courant de la séquence. La boucle s’exécute jusqu’à ce que tous les éléments aient été traités. C’est un moyen puissant d’appliquer une opération sur chaque élément d’un ensemble de données.

La syntaxe d’une boucle for en Python

extrait code python

La syntaxe de base d’une boucle for en Python s’écrit comme suit :

for élément in itérable:
    # Instructions à exécuter

Où :
élément représente la variable qui prendra successivement les valeurs de l’itérable à chaque tour de boucle.
itérable est un objet sur lequel on peut itérer, comme une liste, un tuple, un ensemble, un dictionnaire ou même une chaîne de caractères.

Utilisation de la boucle for en Python

La boucle for permet d’itérer sur une séquence d’éléments, en exécutant un bloc de code pour chacun d’entre eux. Elle convient parfaitement lorsqu’on connaît à l’avance le nombre d’itérations à effectuer.

Par exemple, pour afficher chaque élément d’une liste :

fruits = ["pomme", "banane", "orange"]
for fruit in fruits:
    print(fruit)

Affichera :

pomme
banane
orange

Effectuer une boucle for sur une chaîne de caractères, une liste ou un dictionnaire

La boucle for peut parcourir différents types d’itérables en Python :

– Chaîne de caractères :

for lettre in "Python":
    print(lettre)

– Liste :

nombres = [1, 2, 3, 4, 5]
for nombre in nombres:
    print(nombre)

– Dictionnaire (parcourt les clés) :

personne = {"nom": "Dupont", "age": 32}
for cle in personne:
    print(cle, personne[cle])

Les étapes clés pour effectuer une boucle for sont :

  1. Initialisation de la boucle avec l’itérable
  2. Vérification s’il reste des éléments dans l’itérable
  3. Exécution du bloc d’instructions avec l’élément courant
  4. Passage à l’élément suivant de l’itérable
  5. Fin de la boucle si plus d’éléments

En résumé, la boucle for est un outil puissant en Python pour parcourir des séquences d’éléments de manière simple et lisible. Sa syntaxe concise et ses nombreux cas d’utilisation en font un incontournable de la programmation.

Bouclez selon une condition avec la boucle while

Contrairement à la boucle for qui itère sur une séquence, la boucle while exécute un bloc de code tant qu’une condition donnée est vraie. Elle constitue une structure de contrôle fondamentale en programmation, permettant de répéter des instructions jusqu’à ce qu’un critère soit rempli. Son fonctionnement repose sur l’évaluation d’une expression booléenne (vraie ou fausse) à chaque itération.

Comment écrire et utiliser la condition « while »

La syntaxe de la boucle while s’articule autour de trois éléments clés :

  • Le mot-clé while suivi d’une condition booléenne
  • Un bloc d’instructions indenté, exécuté tant que la condition est vraie
  • Une instruction permettant de modifier la condition pour éviter une boucle infinie

Voici un exemple simple d’utilisation :

compteur = 0
while compteur < 5:
    print(compteur)
    compteur += 1 # Incrémentation du compteur

Dans cet exemple, la boucle s’exécute tant que compteur est inférieur à 5. À chaque itération, la valeur de compteur est affichée, puis incrémentée de 1. Une fois compteur égal à 5, la condition devient fausse et la boucle se termine.

Comment choisir entre boucle for et boucle while

python langage

Le choix entre boucle for et boucle while dépend principalement de la nature des données à traiter :

  • Utilisez une boucle for lorsque vous savez d’avance le nombre d’itérations à effectuer, ou que vous voulez itérer sur une séquence (liste, chaîne, etc.)
  • Préférez une boucle while lorsque le nombre d’itérations dépend d’une condition, souvent liée à des données en entrée ou à un événement externe

Cependant, dans de nombreux cas, les deux boucles sont interchangeables. Le choix relève alors de préférences personnelles ou de considérations de lisibilité du code. En règle générale, on privilégie la boucle for lorsque c’est possible, car elle est plus concise et explicite.

Voici un tableau récapitulatif des principales différences :

 Boucle forBoucle while
Cas d’utilisationItérer sur une séquence connueExécuter un bloc tant qu’une condition est vraie
Condition d’arrêtFin de la séquenceCondition booléenne devenue fausse
Risque de boucle infinieNonOui, si la condition n’est jamais fausse

Ainsi, les boucles for et while sont des outils complémentaires pour contrôler le flux d’exécution en Python. Leur maîtrise est essentielle pour écrire des programmes robustes et efficaces.

Sortir d’une boucle avec l’instruction break

L’instruction break permet de sortir prématurément d’une boucle, c’est-à-dire d’interrompre son exécution avant la fin prévue. Dès que Python rencontre un break, il quitte immédiatement la boucle en cours sans exécuter le reste des instructions. Pour illustrer, voici un exemple où on souhaite afficher les nombres de 1 à 10, sauf le 5 :

for i in range(1, 11):
    if i == 5:
        break
    print(i)

La sortie sera :

1
2 
3
4

Lorsque i vaut 5, l’instruction break est exécutée, ce qui fait sortir de la boucle for. Ainsi, les nombres 6 à 10 ne sont pas affichés.

Les instructions break et continue

Outre break pour sortir d’une boucle, Python dispose d’une autre instruction : continue. Celle-ci ne met pas fin à la boucle mais passe directement à l’itération suivante en ignorant le reste des instructions pour l’itération en cours. Voici un exemple où on affiche les nombres pairs de 1 à 10 :

for i in range(1, 11):
    if i % 2 != 0:
        continue
    print(i)

La sortie :

2
4
6 
8
10

Quand i est impair, continue est exécuté, ce qui fait passer à l’itération suivante sans afficher i.

Utiliser else dans une boucle for

En Python, il est possible d’associer un bloc else à une boucle for ou while. Ce bloc sera exécuté une fois que la boucle sera terminée, sauf si elle a été interrompue par un break. Cela permet par exemple d’exécuter du code après la boucle si celle-ci s’est déroulée normalement.

for i in range(3):
    print(i)
else:
    print("Boucle terminée")

Affichera :

0
1
2
Boucle terminée

En revanche, si on ajoute un break dans la boucle :

for i in range(3):
    if i == 2:
        break
    print(i)
else:
    print("Boucle terminée") 

La sortie sera :

0 
1

Le bloc else n’est pas exécuté car la boucle a été interrompue par break avant sa fin normale.

En résumé, voici un tableau récapitulatif des instructions pour contrôler les boucles en Python :

InstructionRôle
breakSortir immédiatement de la boucle en cours
continuePasser à l’itération suivante sans exécuter le reste des instructions
elseExécuter un bloc de code après la fin normale de la boucle (sauf si break a été utilisé)

Techniques avancées avec les boucles

Faire une boucle dans une boucle : les boucles imbriquées

Les boucles imbriquées, ou boucles nichées, permettent d’itérer sur plusieurs séquences à la fois. Elles consistent à placer une boucle à l’intérieur d’une autre. La boucle externe effectue une itération pour chaque élément de la séquence principale, tandis que la boucle interne s’exécute pour chaque itération de la boucle externe.

Par exemple, pour parcourir les éléments d’une matrice 2D, on utilise deux boucles imbriquées : la boucle externe itère sur les lignes, et la boucle interne sur les colonnes. À chaque itération de la boucle externe, la boucle interne s’exécute entièrement.

matrix = [[1, 2, 3], 
          [4, 5, 6],
          [7, 8, 9]]

for row in matrix:
    for element in row:
        print(element)

Cet exemple affichera chaque élément de la matrice, ligne par ligne. On peut imbriquer autant de boucles que nécessaire, mais au-delà de 3 niveaux, le code devient vite illisible.

Boucler comme un pro avec les « compréhensions de liste » en Python

Les compréhensions de liste sont une syntaxe concise permettant de créer une nouvelle liste en itérant sur une séquence existante. Elles combinent les boucles for et les expressions conditionnelles en une seule ligne de code élégante.

Leur structure générale est :

[expression for item in sequence if condition]

Où :
expression définit la transformation à appliquer à chaque élément
item est la variable d’itération
– sequence est la séquence à parcourir (liste, tuple, chaîne…)
if condition (optionnel) filtre les éléments selon une condition

Exemple classique : créer une liste des carrés des nombres pairs jusqu’à 10 :

squares = [x**2 for x in range(11) if x % 2 == 0]
# Output: [0, 4, 16, 36, 64, 100]

On peut également imbriquer des compréhensions pour créer des listes de listes, de dictionnaires, etc. Bien que concises, elles restent lisibles lorsqu’utilisées à bon escient.

Remplacer les loops for par des compréhensions

Dans de nombreux cas, on peut remplacer une boucle for classique par une compréhension de liste, plus compacte. Cela améliore la lisibilité du code et évite les effets de bord.

Par exemple, au lieu de :

result = []
for x in range(11):
    if x % 2 == 0:
        result.append(x**2)

On peut écrire simplement :

result = [x**2 for x in range(11) if x % 2 == 0]

Cependant, les compréhensions ne conviennent pas à toutes les situations, notamment lorsque :

– Le code dans la boucle est complexe (plusieurs instructions)
– On a besoin d’interrompre la boucle avec break ou continue
– On souhaite modifier la séquence d’origine

Dans ces cas, mieux vaut utiliser une boucle for classique pour plus de clarté. Les compréhensions restent un outil puissant mais à utiliser avec discernement.

Articles récents

Articles similaires

Leave A Reply

S'il vous plaît entrez votre nom ici

Restez à l'écoute - Recevez les dernières actualités dans votre boîte mail