Partie 1 · exercices 3 à 15

La tortue dessine

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 tortue

forward(120)   # avance de 120 pixels
left(90)       # tourne à gauche de 90 degrés
forward(50)    # avance de 50 pixels
done()         # garde la fenêtre ouverte à la fin
CommandeEffet
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.

  1. Décris en commentaire la figure obtenue (longueurs et directions).
  2. À 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 100

forward(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.

  1. Exécute-le avec cote = 50, puis cote = 150, puis cote = 300. Combien de lignes as-tu modifiées à chaque fois ?
  2. 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.

  1. Teste avec longueur = 200 et largeur = 50.
  2. 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 boucle for.

carre_boucle.py
from turtle import *
for i in range(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 in range(4):
    forward(100)
left(90)
done()
  1. Sans l'exécuter, prévois en commentaire ce que va dessiner ce programme.
  2. 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.

  1. Recopie et complète ce tableau en commentaire : triangle équilatéral (3 côtés), carré (4), hexagone (6), octogone (8) → angle de virage.
  2. Avec une boucle for, dessine un triangle équilatéral de côté 100.
  3. 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.

  1. Écris un programme qui commence par deux affectations n = 5 et cote = 80, calcule angle = 360 / n, puis dessine le polygone avec une boucle.
  2. 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

CommandeEffet
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 in range(4):
    forward(100)
    left(90)
end_fill()

penup()           # on lève le crayon...
goto(150, 0)      # ...pour se déplacer sans tracer
pendown()
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 in range(5):
    forward(200)
    right(144)
done()
L'étoile obtenue.
  1. Exécute-le, puis remplis l'étoile de la couleur de ton choix.
  2. Calcule \(5 \times 144\). Combien de tours complets la tortue a-t-elle faits sur elle-même ?
  3. 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 = 5
for i in range(50):
    forward(longueur)
    left(90)
    longueur = longueur + 5   # la longueur augmente de 5 à chaque tour
done()
La spirale carrée obtenue.
  1. Exécute le programme. Quelle est la longueur du dernier trait tracé ?
  2. Remplace left(90) par left(91), puis left(120), puis left(144). Décris les effets en commentaire.
  3. 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.