Connexion élèves

Choisir le(s) module(s) à installer :

Fonctions - Correction module Turtle

Fonction carré

Appel de la fonction

La fonction ne renvoie aucun résultat, donc pas la peine de stocker ce dernier dans une variable ou de l'afficher :

from turtle import * t = Turtle() def carre(): t.down() for i in range(4): t.right(90) t.forward(50) t.up() done() carre() # appel de la fonction

Paramètre longueur

from turtle import * t = Turtle() def carre(longueur): t.down() for i in range(4): t.right(90) t.forward(longueur) # instruction qui trace un côté t.up() done() carre(60) # appel de la fonction avec un argument de longueur quelconque

Paramètres longueur et angle de rotation

Il faut faire tourner la tortue avant de tracer le carré, donc avant la boucle for...in... de la fonction :

from turtle import * t = Turtle() def carre(longueur, angle): t.down() t.right(angle) for i in range(4): t.right(90) t.forward(longueur) # instruction qui trace un côté t.left(angle) # pour réinitialiser la tortue dans la "bonne" direction t.up() done() carre(60, 35) # appel de la fonction avec un argument de longueur quelconque

Tracé de figures variées

Par la suite, on ne modifie plus la fonction : le programme principal doit appeler "correctement" la fonction, en lui passant les "bons" arguments, de façon à obtenir la figure recherchée.

from turtle import * t = Turtle() t.speed(0) # permet d'accélérer le tracé ! # DEFINITION DE LA FONCTION def carre(longueur, angle): t.down() t.right(angle) for i in range(4): t.right(90) t.forward(longueur) # instruction qui trace un côté t.left(angle) # pour réinitialiser la tortue dans la "bonne" direction t.up() done() # PROGRAMME PRINCIPAL # Figure 1 for angle in range(0, 360, 18): carre(100, angle) # appel de la fonction avec un argument d'angle incrémenté de 18° à chaque tour de boucle t.reset() # efface le dessin t.speed(0) # Figure 2 l = 10 # longueur du côté initialisé à 10 pixels for angle in range(0, 360, 18): carre(l, angle) # appel de la fonction avec un argument d'angle incrémenté de 18° l = l + 20 # et de longueur aussi incrémentée à chaque tour de boucle t.reset() # efface le dessin t.speed(0) # Figure 3 for colonne in range(5): # 5 lignes for ligne in range(5) : # 5 colonnes carre(50, 0) t.forward(60) # on se décale vers la droite après chaque carré de la ligne t.backward(300) # en fin de ligne, on revient au début, t.right(90) # on tourne à droite, t.forward(60) # on avance de 60 pixels, t.left(90) # on tourne de 90° vers la gauche pour remettre la tortue dans la "bonne" direction

Fonction étoile

Appel et analyse de la fonction

Pour 3 branches : 180 - 60 = 180 - 180 / 3, donc pour n branches ( n impair ) : 180 - 180/n

from turtle import * t = Turtle() # DÉFINITION DE LA FONCTION def etoile(n): t.down() for i in range(n): t.forward(100) t.right(180 - 180/n) t.up() done() etoile(5)

Ciel étoilé

Voir la documentation du module Turtle !

from turtle import * from random import randint t = Turtle() t.speed(0) # DÉFINITION DE LA FONCTION def etoile(a, n): # a = longueur des branches, n = nombre de branches t.down() for i in range(n): t.forward(a) t.right(180 - 180/n) t.up() done() # PROGRAMME PRINCIPAL for i in range(20): a = randint(10,100) # taille de l'étoile au hasard n = 7 # étoiles à 7 branches x = randint(-200,200) # position au hasard y = randint(-200,200) t.goto(x,y) # déplacement de la tortue vers la position etoile(a, n)

Fonction étincelle

from turtle import * t = Turtle() # DÉFINITION DE LA FONCTION def etincelle(longueur, n): # longueur = longueur des branches, n = nombre de branches for i in range(n): t.down() t.right(360/n) # la tortue tourne de 360/n ° à chaque tour de boucle t.forward(longueur) t.up() t.backward(longueur) done() etincelle(50, 10)
>