Python : Les boucles

Cet article est archivé dans la rubrique Le langage Python.

Bonjour à tous,

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.

La boucle while

Prenons un exemple concret : une punition qu’un écolier doit recopier deux cents fois. Il y a quarante 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.

boucle_1

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

boucle_2

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/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

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/python3
# -*- coding: utf8 -*-

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

# Il est inutile d'incrémenter la variable i.
# La boucle for s'en charge.

Parcourir une liste

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

Avec for… in :

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

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

for fruit in liste_fruits:
    print(fruit)

for_4

Avec for… in enumerate

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

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

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

for_6

Publicités

Auteur : Ordinosor

Bienvenue sur Miamondo, mon blog personnel. "Mia mondo", c'est de l'espéranto et ça signifie "Mon monde" en français. Je m'appelle Benoît alias Ordinosor, Français expatrié en Allemagne. Mes centres d'intérêt sont les distributions GNU/Linux, le langage de programmation Python, la science-fiction et l'espéranto.

Laisser un 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 )

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 )

Photo Google+

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

Connexion à %s