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.
Langages et programmation 2 / Les boucles en Python
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.
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}}$
$\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$).
$\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$).
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.
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.
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.