Boucles#
Si vous voulez que du code soit exécuté de manière répétée, vous pouvez utiliser des boucles.
Voir aussi
Boucles For#
Pour itérer sur une plage de nombres, nous pouvons utiliser une simple boucle for et la fonction range.
Dans la cellule suivante, la commande print(i) sera exécutée plusieurs fois pour différentes valeurs de i. Nous itérons sur une plage de valeurs :
for i in range(0, 5):
print(i)
0
1
2
3
4
Notez que le code ci-dessus qui est indenté ne sera exécuté que pour le premier nombre donné (0) et continuera jusqu’au dernier nombre (5) mais sans l’inclure.
Vous pouvez également itérer sur une plage de nombres avec un pas défini, par exemple pas de 3 :
for i in range(0, 10, 3):
print(i)
0
3
6
9
L’itération sur des tableaux vous permet de faire quelque chose avec tous les éléments du tableau :
for animal in ["Dog", "Cat", "Mouse"]:
print(animal)
Dog
Cat
Mouse
Vous pouvez itérer sur deux tableaux en parallèle, par paires comme ceci :
# going through arrays pair-wise
measurement_1 = [1, 9, 7, 1, 2, 8, 9, 2, 1, 7, 8]
measurement_2 = [4, 5, 5, 7, 4, 5, 4, 6, 6, 5, 4]
for m_1, m_2 in zip(measurement_1, measurement_2):
print("Paired measurements: " + str(m_1) + " and " + str(m_2))
Paired measurements: 1 and 4
Paired measurements: 9 and 5
Paired measurements: 7 and 5
Paired measurements: 1 and 7
Paired measurements: 2 and 4
Paired measurements: 8 and 5
Paired measurements: 9 and 4
Paired measurements: 2 and 6
Paired measurements: 1 and 6
Paired measurements: 7 and 5
Paired measurements: 8 and 4
Si vous voulez également connaître l’index de l’élément dans la liste, utilisez la fonction enumerate :
# numbering and iterating through collections
for index, animal in enumerate(["Dog", "Cat", "Mouse"]):
print("The animal number " + str(index) + " in the list is " + animal)
The animal number 0 in the list is Dog
The animal number 1 in the list is Cat
The animal number 2 in the list is Mouse
Génération de listes dans les boucles#
On peut générer des listes en utilisant des boucles for. La manière conventionnelle de le faire implique plusieurs lignes de code :
# we start with an empty list
numbers = []
# and add elements
for i in range(0, 5):
numbers.append(i * 2)
print(numbers)
[0, 2, 4, 6, 8]
On peut aussi l’écrire plus court. Le concept sous-jacent s’appelle générateurs.
numbers = [i * 2 for i in range(0, 5)]
print(numbers)
[0, 2, 4, 6, 8]
La combinaison conventionnelle impliquant des instructions if ressemble à ceci :
# we start with an empty list
numbers = []
# and add elements
for i in range(0, 5):
# check if the number is odd
if i % 2:
numbers.append(i * 2)
print(numbers)
[2, 6]
Et la version courte comme ceci :
numbers = [i * 2 for i in range(0, 5) if i % 2]
print(numbers)
[2, 6]
Boucles While#
Une autre façon de boucler est d’utiliser la boucle while. Elle fonctionne en vérifiant une condition, similaire à l’instruction if. Elle interrompra l’exécution dès que la condition ne sera plus vraie :
number = 1024
while (number > 1):
number = number / 2
print(number)
512.0
256.0
128.0
64.0
32.0
16.0
8.0
4.0
2.0
1.0
Interruption des boucles#
Vous pouvez interrompre les boucles à des points spécifiques dans votre code en utilisant la commande break :
number = 1024
while (True):
number = number / 2
print(number)
if number < 1:
break;
512.0
256.0
128.0
64.0
32.0
16.0
8.0
4.0
2.0
1.0
0.5
for i in range(10):
print(i)
if i > 5:
break
0
1
2
3
4
5
6
Sauter des itérations dans les boucles#
Si vous voulez sauter des itérations, vous pouvez utiliser l’instruction continue. Cela a souvent du sens en combinaison avec un if :
for i in range(0, 10):
if i >= 3 and i <= 6:
continue
print(i)
0
1
2
7
8
9
Exercice 1#
Supposons que vous ayez une liste de noms de fichiers et que vous vouliez faire quelque chose avec eux, par exemple les imprimer. Programmez une boucle for qui imprime tous les noms de fichiers se terminant par “tif”.
file_names = ['dataset1.tif', 'dataset2.tif', 'summary.csv', 'readme.md', 'blobs.tif']
Exercice 2#
Supposons que vous ayez une liste de rayons de cercles. Faites un tableau (dictionnaire) avec deux colonnes : rayon et aire.
radii = [3, 15, 67, 33, 12, 8, 12, 9, 22]