Dans le chapitre précédent, nous avons vu comment exécuter les blocs d'instructions en tenant compte de certaines conditions grâce à l'énoncé conditionnel if . Nous allons maintenant voir comment répéter l'exécution d'un bloc tant qu'une condition est vérifiée.
Vous avez sûrement pris l'habitude de créer un nouveau répertoire td3 dans le répertoire algoProgPeiP1. Pour ceux qui ont oublié, faites-le. Lancez idle, ouvrez un nouveau fichier et copiez le programme suivant :
# table de multiplication par 7
print("révision de la table de 7")
i = 1
while i<=10 :
print(i,"fois 7 :",i*7)
i = i+1
print("fin de la révision")
L'énoncé
while condition : bloc_à_répéter bloc_finaloù condition est une expression booléenne et bloc_à_répéter et bloc_final sont des blocs d'instructions, est un énoncé itératif (que l'on appelle aussi une boucle puisque l'on revient toujours sur la première instruction du bloc à répéter). Tant que condition s'évalue à True alors bloc_à_répéter est exécuté. Dès que condition vaut False, alors bloc_final est exécuté.
i = i+1
est un
variant : cela fait varier i en partant de sa valeur
initiale 1 et en ajoutant 1 à chaque itération de la
boucle. Ainsi, la valeur de i croît et l'on est sûr que
la condition de répétition de la boucle va devenir fausse
(i.e. i devient plus grand que 10).
i = i+1
. Que se
passe-t-il ?
Quelle table voulez-vous réviser ? 3 Jusqu'à quelle valeur ? 12 Révision de la table de 3 jusqu'à 12 1 fois 3 : 3 2 fois 3 : 6 3 fois 3 : 9 4 fois 3 : 12 5 fois 3 : 15 6 fois 3 : 18 7 fois 3 : 21 8 fois 3 : 24 9 fois 3 : 27 10 fois 3 : 30 11 fois 3 : 33 12 fois 3 : 36 fin de la révision
Le module turtle de Python offre la possibilité de faire des dessins à l'aide d'une tortue. L'idée est que la tortue fait des mouvements (avance, recule, tourne, ...) et qu'elle laisse des traces (i.e. on peut imaginer que la queue de la tortue est un pinceau qui laisse une trace sur le sol). Ce module est inspiré du langage de programmation Logo (voir http://fr.wikipedia.org/wiki/Logo_%28langage%29). Les actions élémentaires de la tortue sont (© explications de "Apprendre à programmer avec Python 3" de Gérard Swinnen):
reset() On efface tout et on recommence goto(x, y) Aller à l'endroit de coordonnées x, y forward(distance) Avancer d'une distance donnée backward(distance) Reculer up() Relever le crayon (pour pouvoir avancer sans dessiner) down() Abaisser le crayon (pour recommencer à dessiner) color(couleur) couleur peut être une chaîne prédéfinie ('red', 'blue', etc.) left(angle) Tourner à gauche d'un angle donné (exprimé en degrés) right(angle) Tourner à droite width(épaisseur) Choisir l'épaisseur du tracé begin_fill() end_fill() Remplir un contour fermé à l'aide de la couleur sélectionnée write(texte) texte doit être une chaîne de caractères
# on importe le module turtle
from turtle import *
# par défaut, la tortue est en (0,0) c'est à dire au milieu
# elle est tournée vers la droite
forward(100)
# suite des déplacements pour faire un carré de côté 100
goto(100,100)
goto(0,100)
#le dernier trait est rouge
color("red")
goto(0,0)
# on écrit un texte
write("J'ai fait un carré")
# maintenant on utilise les angles pour faire un autre carré de largeur 200
up() # on ne veut pas voir le déplacement pour aller sur 1er angle
# du carré
goto(0,120)
down() # on baisse le pinceau pour recommencer à écrire
# on écrit le premier côté en vert
color("green")
forward(200)
# on tourne à gauche de 90° et on avance de 200 3 fois
left(90)
forward(200)
left(90)
forward(200)
left(90)
forward(200)
write("C'est fini")
hauteur = window_height() # récupère la hauteur de la fenêtre
largeur = window_width() # récupère la largeur de la fenêtre
Puisque le point de coordonnée (0,0) est au milieu de la fenêtre, le
point en bas à gauche est en (-largeur/2,-hauteur/2). Il est
recommandé de mettre une marge de quelques pixels pour voir la
marche du bas.