Soyons paresseux ...

En informatique, la paresse est souvent une vertu. On veut à tout prix éviter de faire du travail inutile et la recherche de l'efficacité maximale y est élevée au rang de vertu cardinale. Or, dans l'exercice 1 de la section précédente, vous êtes probablement arrivé à la solution suivante :

from oxosnake import *

makeSnake(dim=20)

forward(3)
right(90)

forward(3)
right(90)

forward(3)
right(90)

forward(3)
right(90)

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/346e0abd-6f54-4a09-b671-8cd5476d2358/Untitled.png

Le problème avec ce code est qu'il est très répétitif. On constate en effet que dessiner un carré revient à répéter 4 fois de suite la séquence d'instructions

forward(3)
right(90)

Exemple de boucle

Le problème

On souhaite résoudre le même exercice en évitant de répéter 4 fois exactement le même code. Pour cela, on demande à Python de faire ce travail pénible avec la boucle repeat :

from oxosnake import * 

makeSnake()
repeat 4:
    forward(3) 
    right(90)

On voit que le programme est bien plus court mais il y a également un autre grand avantage. Quels sont les avantages selon vous si l'on décide de modifier la taille du carré (mesure des côtés) ?

Remarques concernant le code

La structure de contrôle repeat permet de répéter un bloc de code (lignes décalées) un certain nombre de fois.

Fonctionnement de la boucle .

Fonctionnement de la boucle repeat.

La boucle repeat n: permet de répéter n fois le bloc d'instructions (on parle du corps de la boucle). Les instructions du bloc d'instructions à répéter doivent être décalées (on dit indentées dans le langage technique) de manière cohérente. La convention est d'utiliser 4 espaces pour marquer les indentations.

Boucle infinie