La leçon 7 est composée de trois parties, A, B, C qui peuvent être complétées dans n'importe quel ordre.
Jusqu'à présent, nous avons vu les commandes de base de la programmation (e.g. attribuer des valeurs, écrire à l'écran) ainsi que les instructions if
. Dans cette leçon, nous allons introduire les boucles (aussi appelées répétitions ou itérations): c'est une manière de faire faire à un ordinateur la même chose (ou des choses similaires) encore et encore. Par exemple, vérifier l'orthographe de chaque mot dans un document pourrait être implémenté avec une boucle. Nous allons décrire deux types de boucles: les boucles while
et les boucles for
.
Boucles while
Une instruction while
répète une section de code encore et encore tant qu'une condition données est vraie ("true"). Voici un exemple:
Voici la structure générale:
- La première ligne est une
while «condition»:
où «condition» est une expression qui retourneTrue
ouFalse
(une expression Booléenne, comme pour l'instructionif
). - Ensuite, on utilise un block indenté (comme pour une instruction
if
) qu contient des instructions que l'on veut répéter encore et encore. Cela s'appelle le corps de la boucle. - Quand vous exécutez le programme, les étapes suivantes sont répétées:
- La condition est testée; si la condition est
True
alors le corps de la boucle est exécuté et ensuite nous répétons depuis le haut; quand la condition est évaluée àFalse
, la boucle s'arrête.
- La condition est testée; si la condition est
Avec les boucles, il est facile d'écrire un programme qui s'exécute infiniement en boucle infinie. Vous obtenez l'erreur "Time Limit Exceeded" ("Limite de Temps Excédée") car le server web CS Circles limite le temps d'exécution d'un programme; après 1 seconde, le programme est stoppé. Si vous exécutez le programme chez vous, il ne s'arrêtera jamais (jusqu'à ce que vous l'arrêtiez vous-même). |
Boucles for
Il y a un autre type de boucle en Python appelé boucle for
. Dans beaucoup de cas, on peut utiliser n'importe laquelle des deux boucles (for
/while
) mais l'utilisation de l'une peut être plus simple que l'autre et il est donc nécessaire de savoir utiliser les deux. Une boucle for
est construite pour facilement parcourir un intervalle de nombre (ou, comme nous le verrons dans une prochaine leçon, n'importe quelle liste de données).
La structure générale pour une boucle numérique for
est
for «nomDeVariable» in range(«premiereValeur», «derniereValeur»): «Block indenté de commandes appelé le corps de la boucle»Comme d'habitude, le block du corps de la boucle peut être long de plusieurs lignes, du moment que toutes ces lignes soient indentées de la même façon. Pour commencer, le corps de la boucle est exécuté avec
nomDeVariable
ayant pour valeur premiereValeur
. Puis il se répète avec nomDeVariable
ayant pour valeur premiereValeur+1
, et encore avec premiereValeur+2
, etc. Ce processus continue jusqu'à ce que nomDeVariable
est comme valeur derniereValeur-1
et ensuite la boucle s'arrête.
La boucle se termine avec derniereValeur-1 et pas derniereValeur !
|
Voici un exemple avec une boucle for
à l'intérieur d'une autre boucle for
.
Les instructions break
et continue
L'instruction break
est comme une sortie de secours pour une boucle while
ou une boucle loop: break
génère un saut immédiat à la commande qui se trouve après la fin du corps de la boucle. Voici un exemple qui utilise break
: il lit toutes les lignes d'entrées jusqu'à ce que l'une d'elle dise "FIN"
.
L'instruction continue
saute le reste d'une boucle et répète le corps de la boucle à partir du prochain tour de boucle (souvent appelé la prochaine "iteration").