Aller au contenu

🐢 TP – Boucle for et module turtle⚓︎

Objectifs⚓︎

  • Découvrir la boucle for en Python.
  • Utiliser la bibliothèque turtle pour tracer des formes géométriques.
  • Comprendre la répétition d’instructions.

1. Prise en main de turtle⚓︎

🐍 Script Python
import turtle

t = turtle.Turtle()
t.speed(3)

for i in range(4):
    t.forward(100)
    t.right(90)

turtle.done()

👉 Question : Que dessine ce programme ?
👉 Modifier les valeurs pour comprendre le rôle de forward() et right().


2. Polygones réguliers⚓︎

Écrire un programme qui dessine un polygone régulier à n côtés, chaque côté mesurant 100 pixels.

💡 Rappel : l’angle de rotation est 360 / n.

Exemple attendu pour n = 6 : un hexagone.

Correction
🐍 Script Python
import turtle
t = turtle.Turtle()
t.speed(0)
n=6
angle = 360 / n
for i in range(n):
    t.forward(50)
    t.right(angle)
turtle.done()

3. Spirale carrée⚓︎

Écrire un programme qui dessine une spirale de carrés :

spirale carré

Correction
🐍 Script Python
import turtle

t = turtle.Turtle()
t.speed(0)

for i in range(50):
    t.forward(10 + i*5)
    t.right(90)

turtle.done()

👉 Modifier le pas de l’incrément pour obtenir différentes spirales.


4. Rosace d’étoiles⚓︎

Écrire un programme qui dessine plusieurs étoiles à 5 branches en rotation.

💡 Indice :

  • une étoile à 5 branches se fait avec t.forward(100) et t.right(144) dans une boucle de 5.
  • répéter l’étoile en tournant un peu entre chaque dessin.

rosace d'étoile

correction
🐍 Script Python
import turtle

# Paramètres
nb_etoiles = 36     # nombre d’étoiles dans la rosace
taille = 120        # longueur d’un segment de l’étoile
rotation = 360 / nb_etoiles

t = turtle.Turtle()
t.hideturtle()
t.speed(0)

# Dessin de la rosace d'étoiles 
for k in range(nb_etoiles):
    # tracer une étoile à 5 branches
    for i in range(5):
        t.forward(taille)
        t.right(144)
    # légère rotation avant la prochaine étoile
    t.right(rotation)

turtle.done()

👉 Change de couleur à chaque étoile

5. Défi final 🎯⚓︎

Créer un programme qui demande à l’utilisateur (dans la console):

  • le nombre de côtés d’un polygone,
  • le nombre de polygones à dessiner, et affiche une figure géométrique artistique (effet rosace ou mandala).

💡 Indice :

  • Utiliser input() pour récupérer une valeur :
🐍 Script Python
n = input("Combien de côtés ? ")

⚠️ Par défaut, input() renvoie une chaîne de caractères (str). Il faut caster (convertir) en entier avec int() :

🐍 Script Python
n = int(input("Combien de côtés ? "))
  • Même chose pour le nombre de polygones.
Correction
🐍 Script Python
import turtle

t = turtle.Turtle()
t.speed(0)

# Demande des paramètres à l'utilisateur
n = int(input("Combien de côtés pour le polygone (>=3) ? "))
nb = int(input("Combien de polygones à dessiner ? "))
taille = int(input("Longueur d’un côté (en pixels) ? "))

# Sécurisation simple
if n < 3:
    n = 3

# Calcul des angles
angle_poly = 360 / n
rotation = 360 / max(nb, 1)

# Dessin de la rosace
for k in range(nb):
    # dessiner un polygone régulier
    for i in range(n):
        t.forward(taille)
        t.right(angle_poly)
    # tourner un peu avant le polygone suivant
    t.right(rotation)

turtle.done()