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 *
def carre():
down()
for i in range(4):
right(90)
forward(50)
up()
carre() # appel de la fonction
done()
from turtle import *
def carre(longueur):
down()
for i in range(4):
right(90)
forward(longueur) # instruction qui trace un côté
up()
carre(60) # appel de la fonction avec un argument de longueur quelconque
done()
Il faut faire tourner la tortue avant de tracer le carré, donc avant la boucle for...in...
de la fonction :
from turtle import *
def carre(longueur, angle):
down()
right(angle)
for i in range(4):
right(90)
forward(longueur) # instruction qui trace un côté
left(angle) # pour réinitialiser la tortue dans la "bonne" direction
up()
carre(60, 35) # appel de la fonction avec un argument de longueur quelconque
done()
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 *
speed(0) # permet d'accélérer le tracé !
# DEFINITION DE LA FONCTION
def carre(longueur, angle):
down()
right(angle)
for i in range(4):
right(90)
forward(longueur) # instruction qui trace un côté
left(angle) # pour réinitialiser la tortue dans la "bonne" direction
up()
# 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
reset() # efface le dessin
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
reset()
speed(0)
# Figure 3
for colonne in range(5): # 5 lignes
for ligne in range(5) : # 5 colonnes
carre(50, 0)
forward(60) # on se décale vers la droite après chaque carré de la ligne
backward(300) # en fin de ligne, on revient au début,
right(90) # on tourne à droite,
forward(60) # on avance de 60 pixels,
left(90) # on tourne de 90° vers la gauche pour remettre la tortue dans la "bonne" direction
done()
Pour 3 branches : 180 - 60 = 180 - 180 / 3, donc pour n branches ( n impair ) : 180 - 180/n
from turtle import *
# DÉFINITION DE LA FONCTION
def etoile(n):
down()
for i in range(n):
forward(100)
right(180 - 180/n)
up()
etoile(5)
done()
Voir la documentation du module Turtle !
from turtle import *
from random import randint
speed(0)
# DÉFINITION DE LA FONCTION
def etoile(a, n): # a = longueur des branches, n = nombre de branches
down()
for i in range(n):
forward(a)
right(180 - 180/n)
up()
# 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)
goto(x,y) # déplacement de la tortue vers la position
etoile(a, n)
done()
from turtle import *
# DÉFINITION DE LA FONCTION
def etincelle(longueur, n): # longueur = longueur des branches, n = nombre de branches
for i in range(n):
down()
right(360/n) # la tortue tourne de 360/n ° à chaque tour de boucle
forward(longueur)
up()
backward(longueur)
etincelle(50, 10)
done()