Langages et programmation 2 / Les boucles en Python

Mini-coursGratuit

Introduction

Dans ce chapitre, nous introduisons une nouvelle instruction, la boucle, qui permet d’exécuter une instruction plusieurs fois.

Il existe deux variantes, la boucle for et la boucle while.

La boucle for

Exemple

Exécuter la boucle suivante permet d’afficher :

$\text{for i in range(1,8):}\\
\qquad \text{print("bonjour",end="")}\\
\text{print("Comment vas-tu ?")}$

$\Rightarrow$ « bonjour bonjour bonjour bonjour bonjour bonjour bonjour Comment vas-tu ? »

Exemple

Exécuter la boucle suivante a pour effet d’afficher :

$\text{for i range(1,11):}\\
\qquad \text{print(i)}$

$\color{blue}{\begin{array}{|l|}
\hline
\color{black}{1\\
2\\
3\\
4\\
5\\
6\\
7\\
8\\
9\\
10}\\
\hline
\end{array}}$

Syntaxe 1 pour la boucle for :

$\text{for i in range(n):}\\
\qquad ..........$

Le corps de la boucle for est exécutée $\rm n$ fois (pour $\rm i$ allant de $0$ à $\rm n – 1$).

Syntaxe 2 pour la boucle for :

$\text{for i in range(n1,n2):}\\
\qquad ............$

Le corps de la boucle for est exécutée $\rm n2 – n1$ fois (pour $\rm i$ allant de $\rm n1$ à $\rm n2 – 1$).

La boucle while

Une boucle while est une structure de la forme :

$\text{while condition:}\\
\qquad \text{action}$

Où condition est une expression logique et action est une instruction, appelée corps de cette boucle.

Exécuter la boucle précédente a pour effet d’exécuter l’instruction action plusieurs fois tant que la valeur de l’expression condition est égale à True.

Choisir entre une boucle for et la boucle while pour écrire un programme.

Si on connaît à l’avance le nombre de répétitions à effectuer, il faut utiliser une boucle for.

À l’inverse, si la décision d’arrêter la boucle ne peut s’exprimer que par un test, c’est la boucle while qu’il faut choisir.

La non-terminaison

Avec la boucle while apparaît un nouveau comportement possible pour les programmes : la non-terminaison. 

Il est possible d’écrire une instruction :

$\text{while condition:}\\
\qquad\text{traitement}$

Telle que la valeur de l’expression condition soit toujours égale à True, si bien que l’exécution de l’instruction traitement se répète indéfininiment, sans que jamais l’exécution de la boucle ne se termine. 

Un exemple simple est le suivant :

$\text{while True:}\\
\qquad\text{print("bonjour ",end="")}$

Qui affiche bonjour bonjour bonjour … sans jamais s’arrêter.

QuizGratuit
v 3.1.25