HomeTortue graphiqueGPanelRobotique WebTigerPython
 Python - Online
while&for
Deutsch   English   Français   

10. WHILE & FOR

 

 

TU APPRENDS ICI...

 

comment utiliser les structures répétitives avec les mots-clés while et for. La boucle while est l'une des structures les plus importantes en programmation. Elle peut généralement être utilisée pour tout type de répétition et est présente dans pratiquement tous les langages de programmation.

Avec la commande repeat, il était auparavant possible de programmer des répétitions simples sans utiliser de variables. Maintenant que vous connaissez le concept de variables, vous pouvez également utiliser les structures while et for.

 

 

EXEMLES DE BOUCLE WHILE

 

Une boucle while est introduite avec le mot-clé while, suivi d'une condition et d'un deux-points (:). Tant que la condition est remplie, les instructions du bloc suivant sont répétées.

Les opérateurs de comparaison suivants sont généralement utilisés dans la condition : >, >=, <, <=, ==, !=. Les instructions du bloc while doivent être indentées.

La structure répétitive peut être formulée de manière intuitive comme suit:
" Tant que la condition suivante est remplie, exécute le bloc de programme suivant... "


Les boucles while sont particulièrement intéressantes lorsque le nombre d'itérations n'est pas défini à l'avance.

Dans l'exemple suivant, la plus longue section de la spirale doit être inférieure à 200. Tu commences avec une distance a = 5. Tant que a < 200, vous augmentez la distance de 2 après chaque rotation.

 

 

Programm::    

from gturtle import *

makeTurtle()
a = 5
while a < 200:
    forward(a) 
    right(90)
    a = a + 2
► Copy to clipboard


 

Boucle while infinie
La tortue se déplace « indéfiniment » en cercle. Le mot-clé while True: initialise une boucle while infinie. Les instructions du bloc sont répétées jusqu'à ce que le programme soit arrêté en cliquant sur le bouton rouge « Stop ».

 

Programme:    

from gturtle import *

makeTurtle()

while True:
    forward(3)
    right(3)
► Copy to clipboard

 

 

REMARQUE...

 

La condition a < 200 est appelée condition de continuation.

while True initialise une boucle infinie où les instructions sont répétées jusqu'à ce que "stop" soit activé.

 

 

À FAIRE PAR TOI-MÊME


  1.

La tortue dessine des triangles réguliers. Le premier triangle a une longueur de côté s = 300, le second 290, le troisième 280, etc. Après chaque triangle, la tortue effectue une rotation de 10° vers la droite. Le programme s'arrête lorsque la longueur du côté devient inférieure à 10.

 

  2.

La tortue se déplace indéfiniment d’avant en arrière par petits pas dans l’intervalle x = -250 à 250.

Utilise une condition avec la fonction getX(), qui retourne la coordonnée actuelle en x.

 

 

  3.

Complétez le « Random walk » du chapitre sur les nombres aléatoires comme suit :

- La tortue se déplace chaque fois de 30 pas dans une direction choisie au hasard et dessine un point.
- Après chaque point dessiné, tu détermines avec d = distance(0, 0) la distance au point de départ.
- Si la distance est supérieure à 200, le programme s'arrête.
- Compte le nombre de segments avec lesquels la tortue a atteint la distance de 200. Exécute le programme plusieurs fois. Y a-t-il des cas où la tortue ne peut pas sortir de son « ghetto » ?

 

 

 

EXAMPLES DE BOUCLE FOR

  Avec le for-loop, le compteur de la boucle est modifié automatiquement.

La tortue avance d'une distance s et tourne de 70° vers la droite. s est augmenté de 1 après chaque passage. Le compteur de boucle est utilisé pour déterminer la longueur de la distance.

Avec for s in range(100): les nombres 0, 1, 2,..., 99 sont parcourus, de sorte que le bloc de boucle est répété 100 fois.

 

Programme:    

from gturtle import *

makeTurtle()
hideTurtle()

for s in range(100):
    forward(s)
    right(70)
Copy to clipboard
Tu peux aussi dessiner la figure suivante avec deux boucles repeat. Comme tu as aussi besoin de i dans la boucle intérieure pour calculer la longueur des traits, la boucle for est plus avantageuse. Veille à ce que l'indentation soit correcte !

Programme:    

from gturtle import *

makeTurtle()
setPenColor("blue")

repeat 5:
    for i in range(12):
        forward(12 * i)
        left(144)
hideTurtle()
► Copy to clipboard
 

La forme générale d'une boucle for a 3 paramètres
for i in range(start, stop, step):
Le premier paramètre indique la valeur de départ de la variable i. Tant que i est inférieur à stop, la boucle est répétée, i augmentant de step à chaque passage. Ici, tu utilises une boucle for pour définir les coordonnées des points.

Programme:    

from gturtle import *

makeTurtle()

for x in range(-240, 250 , 20):    
    setPos(x, 0)
    dot(15)
► Copy to clipboard
 

 

 

REMEMBER...

 

Avec for i in range(n): les nombres 0, 1, 2,...(n-1) sont parcourus. Le paramètre n dans range(n) spécifie le nombre de répétitions.

Une boucle for peut également avoir 2 ou 3 paramètres.
for i in range(5, 20) : parcourt les nombres 5, 6, 7, 8.....19. (step = 1).
for i in range(5, 20, 3) : parcourt les nombres 5, 8, 11, 14, 17.

 

 

À FAIRE PAR TOI-MÊME


  4.

Tu obtiens la figure ci-contre en dessinant 20 hexagones avec des côtés de plus en plus longs à l'aide d'une boucle for.

def hexagon(i):
    repeat 6:
        forward(i)
        right(60)
 
  5.

La Turtle se déplace vers l'avant en dessinant un cercle plein (dot), puis vers l'arrière jusqu'au point de départ et tourne de 10° vers la droite. A chaque répétition, elle dessine un parcours plus long.

Résous le problème avec une boucle for et utilise un multiple du compteur de boucle i pour la longueur du parcours.

 

  6.

Créez la figure ci-contre à l'aide d'une boucle for. La tortue commence par avancer de la longueur de parcours s, puis tourne de 89° vers la droite.
s doit aller de 0 à 150.

 

 

 

ADDITIVEL : BOUCLES FOR IMBRIQUÉES

 


Les boucles for peuvent être facilement « imbriquées ». Dans cet exemple, la boucle for avec les coordonnées y est exécutée pour chaque coordonnée x. Comme le pas dans les deux boucles est de 20, x et y sont augmentés de 20 à chaque exécution de la boucle. À l'arrêt, sélectionnez 201 pour que la coordonnée x = 200 ou y = 200 soit également prise en compte.

 


Programme:    

from gturtle import *

makeTurtle()

for x in range(-200, 201, 20):
    for y in range(-200, 201, 20):   
        if x + y < 0:
            setPenColor("red")
        else:
            setPenColor("green")
        setPos(x, y)
        dot(10) 
► Copy to clipboard

 


Avec cette méthode, tu dessines un échiquier. Tu comprends facilement que tu dois toujours dessiner un carré plein si la somme de l'index des lignes et des colonnes est un nombre pair.

Comme chaque carré a une taille de 30x30, le carré (i, k) est dessiné à la position x = 30 * i, y = 30 * k.

 

Programme:    

from gturtle import *

def cell(x, y):
    setPos(x, y)
    startPath()
    repeat 4:
        forward(30)
        left(90)
    fillPath()    

makeTurtle()
setFillColor("blue")
hideTurtle()
for i in range(8):
    for k in range(8):
        if (i + k) % 2 == 0:
            cell(30 * i, 30 * k)
► Copy to clipboard