Chapitre 4 – Les boucles

Dans un programme, il est parfois nécessaire de répéter une instruction un certain nombre de fois. Pour cela, on utilise des boucles.

1. La boucle while

Prenons un exemple concret : une punition qu’un écolier doit recopier deux cents fois. Il y a 50 ans, le pauvre cancre pris par la patrouille devait patiemment recopier la phrase qui lui permettait d’expier sa faute : « Je ne collerai plus mon vieux chewing-gum sous mon pupitre ».

Aujourd’hui, ce genre de punition est une formalité pour celui qui maîtrise les boucles, et en Python, pour en créer une, on utilise le mot-clé while. Cela signifie Tant que… C’est à dire Tant que la condition est vraie, exécute cette instruction.

#!/usr/bin/env python3
# -*- coding: utf8 -*-

# Phrase à recopier:
chaine = "Je ne copierai plus sur mon voisin.\n"

# Variable d'incrémentation.
# À chaque tour de boucle, sa valeur augmente de 1
i = 1
while i <= 10: #Tant que i est inférieur ou égal à 10:
    print (i, chaine) # Imprimer i et chaine
    i += 1 # Incrémentation de la variable (i = i + 1)

# Lorsque i vaut 10, la boucle s'interrompt.

Je l’exécute dans un terminal interactif IDLE-3 :

1 Je ne copierai plus sur mon voisin

2 Je ne copierai plus sur mon voisin

3 Je ne copierai plus sur mon voisin

4 Je ne copierai plus sur mon voisin

5 Je ne copierai plus sur mon voisin

6 Je ne copierai plus sur mon voisin

7 Je ne copierai plus sur mon voisin

8 Je ne copierai plus sur mon voisin

9 Je ne copierai plus sur mon voisin

10 Je ne copierai plus sur mon voisin

Il faut prévoir un moyen d’interrompre la boucle après un nombre défini d’itérations sous peine de créer une boucle infinie qui finirait par épuiser les ressources mémoire de votre ordinateur. Pour cela, on déclare une variable souvent nommée i (par convention) que l’on incrémente à chaque tour de boucle, c’est-à dire à laquelle on ajoute la valeur 1 à chaque tour de boucle (i += 1) . Quand la valeur contenue dans la variable i est égale à la condition définie en début de boucle (dans notre exemple, c’est la ligne 9 : tant que i est inférieur ou égal à 10), alors la boucle s’interrompt.

Voici un exemple de boucle infinie. La condition est toujours vraie, la boucle ne s’interrompt jamais. Le seul moyen de l’interrompre avant qu’elle ne dévore toute la mémoire de votre ordinateur, tel un trou noir digital, est de presser les touches ctrl + C.

#!/usr/bin/env python3
# -*- coding: utf8 -*-

line_number = 0
# Tant que 3 est inférieur à 4 (C'est toujours vrai!)
while 3 < 4 :
    line_number += 1
    print(line_number, "Je viens de créer une boucle infinie.\n")

# Rien n'est prévu pour sortir de la boucle.

J’interromps la boucle après 1038 itérations :

boucle_4

2. La boucle for

Il existe une autre manière de créer une boucle, en utilisant les mots-clés for… in range. Comme je l’écris en commentaire, il est inutile d’incrémenter la variable i, la boucle for s’en charge.

#!/usr/bin/env python3
# -*- coding: utf8 -*-

for i in range(1, 51):
    print(i, "Je dois recopier 50 fois cette phrase.")

3. Parcourir une liste

Avec for, il est possible de parcourir une liste pour, par exemple, en extraire les élements.

Avec for… in :
#!/usr/bin/env python3
# -*- coding: utf8 -*-

liste_fruits = ["pommes", "poires", "oranges"]

for fruit in liste_fruits:
    print(fruit)

pommes

poires

oranges

Avec for… in enumerate

#!/usr/bin/env python3
# -*- coding: utf8 -*-

liste_fruits = ["pommes", "poires", "oranges"]

for i, fruit in enumerate(liste_fruits):
    print(i + 1, fruit)

1 pommes

2 poires

3 oranges

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s