Instructions, variables et première boucle, en dessinant
Le module turtle permet de piloter une tortue qui dessine en se déplaçant. Chaque instruction la fait avancer ou tourner : tu vois immédiatement la conséquence de chacun de tes choix.
CoursPremières commandes
Au départ, la tortue est au centre de l'écran, au point de coordonnées \((0\,;0)\), et elle regarde vers la droite. Les longueurs sont en pixels, les angles en degrés.
premiers_pas.py
from turtle import * # on charge les commandes de la tortueforward(120) # avance de 120 pixelsleft(90) # tourne à gauche de 90 degrésforward(50) # avance de 50 pixelsdone() # garde la fenêtre ouverte à la fin
Commande
Effet
forward(n)
avance de n pixels
back(n)
recule de n pixels
left(a)
tourne sur place à gauche de a degrés
right(a)
tourne sur place à droite de a degrés
done()
termine le dessin et garde la fenêtre ouverte
Vigilance
La première ligne est toujours from turtle import * et la dernière done().
Ferme la fenêtre de la tortue avant de relancer ton programme. Si EduPython ne répond plus, réinitialise le moteur Python avec Ctrl + F2.
ExercicesÀ toi de piloter
EX 03Je m'entraîne🌶️prise en main
Exercice 3 — Lire un dessin
Copie le programme premiers_pas.py ci-dessus dans l'éditeur, puis exécute-le.
Décris en commentaire la figure obtenue (longueurs et directions).
À la fin du programme, dans quelle direction la tortue regarde-t-elle ?
Indice
Observe la petite flèche : c'est la tortue, elle pointe dans la direction où elle avancera.
💾 NOM_Prenom_ex03.py
EX 04Je m'entraîne🌶️prise en main
Exercice 4 — Le carré
Écris un programme qui dessine un carré de côté 100 pixels.
Indice
Un carré, c'est 4 côtés et 4 virages. De combien de degrés tourne-t-on à chaque coin ?
💾 NOM_Prenom_ex04.py
EX 05Je m'entraîne🌶️🌶️application
Exercice 5 — Le rectangle
Écris un programme qui dessine un rectangle de 150 pixels sur 80 pixels.
Indice
Comme le carré, mais les côtés n'ont pas tous la même longueur : 150, 80, 150, 80.
💾 NOM_Prenom_ex05.py
EX 06Je m'entraîne🌶️🌶️application
Exercice 6 — L'escalier
Écris un programme qui dessine l'escalier ci-dessous : 3 marches de 40 pixels de large et 30 pixels de haut.
L'escalier à reproduire (la tortue part du point en bas à gauche).Indice 1
Une marche : on monte (tourner à gauche, avancer de 30), puis on avance vers la droite (tourner à droite, avancer de 40).
Indice 2
Commence par left(90) pour monter la première contremarche.
💾 NOM_Prenom_ex06.py
CoursLes variables
Une variable est une boîte qui porte un nom et qui contient une valeur. On l'utilise pour ne pas répéter un même nombre partout : si on change la valeur, tout le dessin suit.
carre_variable.py
from turtle import *
cote = 100# la variable cote reçoit la valeur 100forward(cote)
left(90)
forward(cote)
left(90)
forward(cote)
left(90)
forward(cote)
left(90)
done()
À retenir
cote = 100 se lit « cote reçoit 100 » : c'est une affectation, pas une égalité mathématique. La valeur de droite est rangée dans la variable de gauche.
Un nom de variable contient des lettres, des chiffres et _, sans espace ni accent, et ne commence pas par un chiffre : cote, largeur_2, nb_tours.
ExercicesChanger une valeur, voir les conséquences
EX 07Je m'entraîne🌶️prise en main
Exercice 7 — Un carré réglable
Copie le programme carre_variable.py.
Exécute-le avec cote = 50, puis cote = 150, puis cote = 300. Combien de lignes as-tu modifiées à chaque fois ?
Essaie cote = -100. Que se passe-t-il ? Explique en commentaire.
Indice
forward d'une longueur négative fait… reculer la tortue.
💾 NOM_Prenom_ex07.py
EX 08Je m'entraîne🌶️🌶️application
Exercice 8 — Un rectangle réglable
Écris un programme qui dessine un rectangle dont les dimensions sont rangées dans deux variables longueur et largeur.
Teste avec longueur = 200 et largeur = 50.
Quelles valeurs faut-il choisir pour que le rectangle soit un carré ?
Indice
Deux lignes d'affectation au début du programme, puis forward(longueur) et forward(largeur) à la place des nombres.
💾 NOM_Prenom_ex08.py
CoursRépéter : la boucle for
Pour répéter plusieurs fois les mêmes instructions, on utilise une bouclefor.
carre_boucle.py
from turtle import *
for i inrange(4): # répète 4 fois le bloc décaléforward(100)
left(90)
done() # n'est plus décalé : hors de la boucle
À retenir
La ligne for i in range(4): se termine par deux-points:.
Les lignes répétées forment un bloc : elles sont décalées vers la droite d'une tabulation (touche Tab, soit 4 espaces). La première ligne qui n'est plus décalée est en dehors de la boucle.
Vigilance
Oublier les : provoque une erreur SyntaxError.
Décaler ou ne pas décaler une ligne change complètement le programme : le décalage fait partie du code.
ExercicesBoucles et polygones
EX 09Je m'entraîne🌶️prise en main
Exercice 9 — Prédire, puis tester
Voici un programme presque identique à carre_boucle.py :
carre_rate.py
from turtle import *
for i inrange(4):
forward(100)
left(90)
done()
Sans l'exécuter, prévois en commentaire ce que va dessiner ce programme.
Exécute-le et vérifie ta prévision.
Indice
Quelles lignes sont décalées, donc répétées 4 fois ? Et left(90) ?
💾 NOM_Prenom_ex09.py
EX 10Je m'entraîne🌶️🌶️application
Exercice 10 — Polygones réguliers
Pour faire le tour complet d'un polygone régulier à \(n\) côtés, la tortue tourne en tout de 360°. À chaque coin, elle tourne donc de \(\dfrac{360}{n}\) degrés.
Recopie et complète ce tableau en commentaire : triangle équilatéral (3 côtés), carré (4), hexagone (6), octogone (8) → angle de virage.
Avec une boucle for, dessine un triangle équilatéral de côté 100.
Dessine de même un hexagone régulier, puis un octogone régulier.
Triangle, hexagone et octogone réguliers.Indice
Triangle : 360 ÷ 3 = 120, donc left(120) à chaque coin, répété 3 fois.
💾 NOM_Prenom_ex10.py
EX 11Je m'entraîne🌶️🌶️application
Exercice 11 — Le polygone universel
On veut un seul programme capable de dessiner n'importe quel polygone régulier.
Écris un programme qui commence par deux affectations n = 5 et cote = 80, calcule angle = 360 / n, puis dessine le polygone avec une boucle.
Teste avec n = 5, n = 12, puis n = 36 et cote = 10. À quoi ressemble la dernière figure ?
Indice
range(n) répète le bloc n fois : le nombre de répétitions peut être une variable.
💾 NOM_Prenom_ex11.py
CoursCouleurs et déplacements
Commande
Effet
pencolor('red')
couleur du trait (en anglais : 'blue', 'green', 'pink', 'orange'…)
pensize(3)
épaisseur du trait
fillcolor('yellow')
couleur de remplissage
begin_fill() … end_fill()
remplit la figure tracée entre ces deux commandes
penup() / pendown()
lève / baisse le crayon : la tortue se déplace sans tracer / en traçant
goto(x, y)
va directement au point de coordonnées \((x\,;y)\)
speed(0)
vitesse maximale
hideturtle()
cache la tortue
couleurs.py
from turtle import *
pencolor('red')
pensize(4)
fillcolor('yellow')
begin_fill()
for i inrange(4):
forward(100)
left(90)
end_fill()
penup() # on lève le crayon...goto(150, 0) # ...pour se déplacer sans tracerpendown()
done()
ExercicesCréer et expérimenter
EX 12Je m'entraîne🌶️🌶️application
Exercice 12 — Deux figures colorées
Reprends couleurs.py, puis complète-le pour dessiner, à droite du carré jaune, un triangle équilatéral bleu de côté 100, au trait vert.
Indice
Après le goto(150, 0), change les couleurs, puis begin_fill(), la boucle du triangle, end_fill().
💾 NOM_Prenom_ex12.py
EX 13Je m'entraîne🌶️🌶️🌶️plusieurs étapes
Exercice 13 — L'étoile
Voici un programme qui dessine une étoile :
etoile.py
from turtle import *
for i inrange(5):
forward(200)
right(144)
done()
L'étoile obtenue.
Exécute-le, puis remplis l'étoile de la couleur de ton choix.
Calcule \(5 \times 144\). Combien de tours complets la tortue a-t-elle faits sur elle-même ?
Remplace 144 par 150 et range(5) par range(12). Que se passe-t-il ?
Indice
Un tour complet, c'est 360°.
💾 NOM_Prenom_ex13.py
EX 14Je m'entraîne🌶️🌶️🌶️plusieurs étapes
Exercice 14 — La spirale
Dans une boucle, une variable peut changer à chaque tour.
spirale.py
from turtle import *
speed(0)
longueur = 5for i inrange(50):
forward(longueur)
left(90)
longueur = longueur + 5# la longueur augmente de 5 à chaque tourdone()
La spirale carrée obtenue.
Exécute le programme. Quelle est la longueur du dernier trait tracé ?
Remplace left(90) par left(91), puis left(120), puis left(144). Décris les effets en commentaire.
Modifie le programme pour que la spirale se referme : elle commence avec de grands traits (250 pixels) qui diminuent de 5 à chaque tour.
Indice 1
Au 1er tour, longueur vaut 5 ; au 2e, 10 ; au 3e, 15… Au 50e ?
Indice 2
Pour la question 3 : longueur = 250 au départ, et longueur = longueur - 5.
💾 NOM_Prenom_ex14.py
EX 15Défi🌶️🌶️🌶️🌶️défi
Exercice 15 — La rosace
Défi : reproduis cette rosace. Elle est formée de 36 carrés de côté 100 ; entre deux carrés, la tortue tourne de 10°.
La rosace à reproduire.Indice 1
Une boucle pour dessiner un carré… répétée 36 fois par une deuxième boucle.
Indice 2
La boucle du carré est placée à l'intérieur de l'autre : son bloc est décalé deux fois.
💾 NOM_Prenom_ex15.py
À retenirSynthèse
Ce que je sais faire
Piloter la tortue : forward, left, right, penup, goto, couleurs.
Ranger une valeur dans une variable et la réutiliser : cote = 100.
Répéter un bloc avec for i in range(n): en soignant les : et le décalage.
Choisir l'angle d'un polygone régulier : \(\dfrac{360}{n}\) degrés.