5 - Les Instructions Répétitives
5 - Les Instructions Répétitives
5 - Les Instructions Répétitives
1) Introduction
Une boucle est une instruction qui permet de décrire une répétition dans un programme. Elle
consiste à répéter l’exécution d’un bloc d’instructions, appelés corps de la boucle, un certain
nombre de fois, une exécution du bloc s’appelle itération.
En python, il existe deux formes de boucles : la boucle while et la boucle for.
2) La boucle while
Syntaxe :
while condition:
Bloc_inst
Condition est une expression logique, le bloc d’instruction est exécuté jusqu’à ce que la condition
devienne fausse.
Remarque :
Si la condition est fausse au départ, le corps de la boucle n’est jamais exécuté.
Si la condition reste toujours vraie, alors le corps de la boucle est répété indéfiniment.
Exemple:
x = 1
while x < 10:
print("x = ", x)
x = x * 2
print("Fin")
Affichage après exécution :
x = 1
x = 2
x = 4
x = 8
Fin
3) La boucle for
En Python, la boucle for fonctionne d’une manière un peu différente des autres langages de
programmation (elle fonctionne comme un itérateur).
Elle peut être utilisée pour parcourir une séquence de liste, chaîne, tuple, ensemble, tableau, ….
En Python, il n'y a pas de syntaxe de type C for (i = 0; i <n; i ++), mais on utilise la syntaxe :
for variable in sequence :
Bloc_inst
Exemple 1:
i = 0
i = 5
i = 2
i = 15
Exemple 2:
pomme
banane
fraise
4) La fonction range
La fonction range() renvoie une séquence de nombres, commençant par 0 par défaut et
incrémentée de 1 (par défaut), et s'arrête avant un nombre spécifié.
Syntaxe :
range(Debut, Fin, Pas)
Debut (facultatif): Un nombre entier spécifiant à quelle position commencer. La valeur
par défaut est 0.
Fin (obligatoire) : Un nombre entier spécifiant à quelle position s'arrêter (non inclus).
Pas (facultatif): Un nombre entier spécifiant l'incrémentation. La valeur par défaut est 1
Il est possible de créer une boucle facilement en utilisant la fonction range :
Exemple 1: Exemple 2 :
0 1
1 3
2 5
3 7
4 9
if i == 2:
break
print("fin iteration", i)
print("apres la boucle")
Affichage après exécution :
debut iteration 0
bonjour
fin iteration 0
debut iteration 1
bonjour
fin iteration 1
debut iteration 2
bonjour
apres la boucle
b) L’instruction continue
L’instruction continue permet de passer prématurément au tour de boucle suivant. Elle fait
continuer sur la prochaine itération de la boucle.
Exemple
for i in range(4):
print("Debut iteration", i)
print("Bonjour")
if i < 2:
continue
print("Fin iteration", i)
print("Apres la boucle")
Affichage après exécution :
Debut iteration 0
Bonjour
Debut iteration 1
Bonjour
Debut iteration 2
Bonjour
Fin iteration 2
Debut iteration 3
Bonjour
Fin iteration 3
Apres la boucle
c) La clause else dans une boucle
La clause else dans une boucle permet de définir un bloc d’instructions qui sera exécuté à la fin
seulement si la boucle s’est déroulée complétement sans être interrompue par un break.
Contrairement aux instructions présentes après la boucle, qui s’exécutent dans tous les cas (avec
ou sans interruption par un break), le bloc d’instructions défini dans la clause else ne s’exécutera
pas lors de l’interruption par un break. Après l’interruption, on passera directement aux
instructions après la boucle.
Autrement dit, le bloc de la clause else est exécuté lorsque la boucle se termine par épuisement de
la liste (avec for) ou quand la condition devient fausse (avec while), mais pas quand la boucle est
interrompue par un break. Ceci est illustré dans la boucle suivante, qui recherche des nombres
premiers :
for n in range(2, 8):
for x in range(2, n):
if n % x == 0:
print(n, "égale", x, "*", n//x)
break
else:
print(n, "est un nombre premier")
Affichage après exécution :
2 est un nombre premier
3 est un nombre premier
4 égale 2 * 2
5 est un nombre premier
6 égale 2 * 3
7 est un nombre premier
En python Bloc_inst
while True: if condition:
break