Comprendre les Boucles en Python

PythonBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous acquerrez une compréhension fondamentale des boucles (loops) en Python, qui sont des outils essentiels pour automatiser les tâches répétitives. Nous commencerons par explorer les boucles for et le concept d'itération, apprenant comment traiter des séquences telles que les listes et les chaînes de caractères (strings).

Ensuite, vous découvrirez comment utiliser la fonction range() avec les boucles for pour générer des séquences de nombres. Nous introduirons ensuite les boucles while pour la répétition basée sur des conditions. Enfin, vous apprendrez à contrôler le flux des boucles for et while à l'aide des instructions break et continue.

Introduction aux Boucles For et à l'Itération

Dans cette étape, vous apprendrez à connaître la boucle for en Python. Une boucle for est utilisée pour itérer sur une séquence, telle qu'une liste, un tuple ou une chaîne de caractères (string). Itérer signifie effectuer une action pour chaque élément de la séquence, un par un.

Tout d'abord, utilisons une boucle for pour imprimer chaque élément d'une liste.

Dans l'explorateur de fichiers du WebIDE à gauche, vous verrez une liste de fichiers. Trouvez et ouvrez le fichier nommé for_loop_example.py. Ajoutez-y le code Python suivant :

## Define a list of numbers
numbers = [1, 2, 3, 4, 5]

## The for loop iterates over each item in the 'numbers' list.
## In each iteration, the current item is assigned to the 'number' variable.
for number in numbers:
  ## This code block is executed for each item.
  print(number)

Enregistrez le fichier en appuyant sur Ctrl + S.

Pour exécuter le script, ouvrez le terminal intégré en cliquant sur Terminal -> New Terminal en haut du WebIDE. Ensuite, exécutez la commande suivante :

python for_loop_example.py

Vous devriez voir la sortie suivante, chaque nombre étant imprimé sur une nouvelle ligne :

1
2
3
4
5

Les boucles for peuvent également itérer sur des chaînes de caractères. Essayons cela dans un nouveau fichier. Ouvrez le fichier string_loop.py depuis l'explorateur de fichiers et ajoutez ce code :

## Define a string
message = "Hello"

## Iterate over each character in the 'message' string
for char in message:
  ## Print each character
  print(char)

Enregistrez le fichier et exécutez-le depuis le terminal :

python string_loop.py

La sortie sera :

H
e
l
l
o

Ceci démontre qu'une boucle for peut traiter n'importe quelle séquence, considérant une chaîne de caractères comme une séquence de caractères.

Utiliser la Fonction range() avec les Boucles For

La fonction range() est un outil puissant souvent utilisé avec les boucles for pour générer une séquence de nombres. Ceci est utile lorsque vous devez répéter une action un nombre spécifique de fois.

La fonction range() peut être utilisée de trois manières :

  • range(stop) : Génère des nombres à partir de 0 jusqu'à, mais sans inclure, stop.
  • range(start, stop) : Génère des nombres à partir de start jusqu'à, mais sans inclure, stop.
  • range(start, stop, step) : Génère des nombres de start à stop avec un incrément de step.

Voyons comment cela fonctionne. Ouvrez le fichier range_example.py depuis l'explorateur de fichiers et ajoutez le code suivant :

## Use range(stop) to print numbers from 0 to 4
print("Numbers from 0 to 4:")
for i in range(5):
  print(i)

print("\n" + "="*20 + "\n") ## A separator for clarity

## Use range(start, stop) to print numbers from 2 to 5
print("Numbers from 2 to 5:")
for i in range(2, 6):
  print(i)

print("\n" + "="*20 + "\n") ## A separator for clarity

## Use range(start, stop, step) to print odd numbers from 1 to 9
print("Odd numbers from 1 to 9:")
for i in range(1, 10, 2):
  print(i)

Enregistrez le fichier et exécutez-le depuis le terminal :

python range_example.py

Vous devriez voir la sortie suivante :

Numbers from 0 to 4:
0
1
2
3
4

====================

Numbers from 2 to 5:
2
3
4
5

====================

Odd numbers from 1 to 9:
1
3
5
7
9

Notez que la valeur stop n'est jamais incluse dans la séquence. Si vous devez effectuer une action un nombre fixe de fois mais que vous n'avez pas besoin de la valeur du compteur, vous pouvez utiliser un trait de soulignement (_) comme nom de variable. C'est une convention courante en Python.

## This loop will execute 5 times
for _ in range(5):
  print("Hello")

Introduction aux Boucles While

Dans cette étape, vous apprendrez à connaître la boucle while. Contrairement à une boucle for qui itère un nombre fixe de fois, une boucle while continue de s'exécuter tant qu'une condition spécifiée reste True.

La syntaxe de base d'une boucle while est la suivante :

while condition:
  ## Code à exécuter
  ## IMPORTANT : Mettre à jour une variable pour que la condition devienne False à terme

Il est crucial de s'assurer que la condition deviendra fausse à terme. Sinon, vous créerez une boucle infinie (infinite loop), ce qui fera tourner votre programme indéfiniment.

Créons un script qui utilise une boucle while pour imprimer les nombres de 1 à 5. Ouvrez le fichier while_loop_example.py et ajoutez le code suivant :

## Initialize a counter variable
count = 1

## The loop continues as long as 'count' is less than or equal to 5
while count <= 5:
  ## Print the current value of count
  print(count)
  ## Increment count by 1. This is essential to prevent an infinite loop.
  count = count + 1 ## This can also be written as count += 1

Enregistrez le fichier et exécutez-le depuis le terminal :

python while_loop_example.py

Vous devriez voir la sortie suivante :

1
2
3
4
5

Voici comment la boucle fonctionne :

  1. count est initialisé à 1.
  2. La condition count <= 5 est vérifiée. 1 <= 5 est True, donc le corps de la boucle s'exécute.
  3. 1 est imprimé, et count est incrémenté à 2.
  4. La condition est vérifiée à nouveau. 2 <= 5 est True, donc la boucle continue.
  5. Ce processus se répète jusqu'à ce que count devienne 6.
  6. Lorsque count vaut 6, la condition 6 <= 5 est False, et la boucle se termine.

Utilisez les boucles for lorsque vous connaissez le nombre d'itérations à l'avance. Utilisez les boucles while lorsque la répétition dépend d'une condition qui peut changer pendant l'exécution.

Contrôler le Flux des Boucles avec break et continue

Python fournit deux instructions, break et continue, pour modifier le flux normal d'une boucle.

L'instruction break termine immédiatement la boucle dans laquelle elle se trouve. L'exécution se poursuit à la première instruction après la boucle.

Voyons un exemple. Ouvrez le fichier break_example.py et ajoutez ce code, qui arrête une boucle lorsqu'une certaine condition est remplie :

## Iterate through numbers from 0 to 9
for i in range(10):
  ## If i is 5, the 'if' condition becomes True
  if i == 5:
    print(f"Breaking loop at i = {i}")
    ## The break statement exits the loop immediately
    break
  print(i)

print("Loop finished.")

Enregistrez le fichier et exécutez-le :

python break_example.py

La sortie sera :

0
1
2
3
4
Breaking loop at i = 5
Loop finished.

La boucle s'est arrêtée lorsque i est devenu 5, et les nombres de 5 à 9 n'ont jamais été imprimés.

L'instruction continue saute le reste de l'itération courante et passe à la suivante.

Voyons comment continue peut être utilisé pour sauter l'impression d'un nombre spécifique. Ouvrez le fichier continue_example.py et ajoutez le code suivant :

## Initialize a counter
count = 0

## Loop while count is less than 10
while count < 10:
  count += 1
  ## If count is 5, the 'if' condition becomes True
  if count == 5:
    print(f"Skipping iteration at count = {count}")
    ## The continue statement skips the rest of this iteration
    continue
  ## This line is skipped when count is 5
  print(count)

print("Loop finished.")

Enregistrez le fichier et exécutez-le :

python continue_example.py

La sortie sera :

1
2
3
4
Skipping iteration at count = 5
6
7
8
9
10
Loop finished.

Dans ce cas, lorsque count était 5, l'instruction continue a été exécutée. Cela a provoqué le saut de la ligne print(count) pour cette itération, et la boucle est passée à l'itération suivante où count est devenu 6.

Résumé

Dans ce laboratoire, vous avez appris les fondamentaux des boucles en Python. Vous avez commencé par la boucle for, en l'utilisant pour itérer sur des séquences telles que des listes et des chaînes de caractères (strings). Vous avez ensuite exploré la fonction range() pour créer des séquences numériques destinées aux boucles for.

Ensuite, vous avez découvert la boucle while pour créer des boucles qui s'exécutent tant qu'une condition est vraie. Enfin, vous avez appris à contrôler l'exécution des boucles avec l'instruction break pour sortir prématurément d'une boucle et l'instruction continue pour sauter une itération. Ces concepts sont fondamentaux pour écrire des programmes Python efficaces et puissants.