Première NSI Mme Pierrot
Découverte des fonctions avec le module « turtle »
Thème : Les fonctions, les boucles avec un module de graphisme...
Compétences à acquerir :
• Apprendre la syntaxe des fonctions en python (Comprendre le passage de valeurs par les arguments de la fonction et par l’instruction return)
• Compréhension « visuelle » des boucles while ou for
• Savoir créer son propre module.
Environnement :
• Turtle : la tortue graphique
Eléments d’information et exemples.
Sitographie :
• https://docs.python.org/fr/3/library/turtle.html
• https://zestedesavoir.com/tutoriels/944/a-la-decouverte-de-turtle/
• https://fr.wikibooks.org/wiki/Programmation_Python/Turtle Quelques fonctions du module turtle :
reset() --> On efface tout et on recommence goto(x, y) --> Aller à l'endroit de coordonnées x, y forward(distance) --> Avancer d'une distance donnée backward(distance) --> Reculer
up() --> Relever le crayon (pour pouvoir avancer sans dessiner) down() --> Abaisser le crayon (pour recommencer à dessiner) color(couleur) --> couleur peut être une chaîne prédéfinie ('red', 'blue', etc.) left(angle) --> Tourner à gauche d'un angle donné (exprimé en degrés) right(angle) --> Tourner à droite
width(épaisseur) --> Choisir l'épaisseur du tracé
begin_fill() --> remplissage du contour fermé défini jusqu’à end_fill() turtle.mainloop() --> maintient la fenêtre ouverte.
speed() --> permet de régler la vitesse du traçage.
Les modules sont des fichiers qui regroupent un ensemble de fonctions.
Dans un programme python on peut importer une fonction d’un module, par exemple :
from math import sin
On peut aussi importer toutes les fonctions d’un module, par exemple :
from turtle import *
Fonction
def maFonction( x , y ) : """
Ici on décrit ce que fait la fonction et ce qu'elle renvoi comme résultat """
[bloc d'instructions]
return z
Quelques modules essentiels de la bibliothèque python :
string Contient les opérations communes sur les chaînes de caractères datetime Regroupe les fonctions traitant les variables « temps » et les
dates
math Fonctions mathématiques (sqrt, cos, sin, etc... )
cmath Les ajouts pour prendre en compte les nombres complexes random Gestion du hasard
time Accès au temps et à ses convertions turtle Faire des graphiques avec Turtle
Etape 1 :
Définir des fonctions dans un module
Etape 2 : Importer le module dans un programme pour pouvoir utiliser les fonctions.
Première NSI Mme Pierrot
Travail à réaliser
1°) Prise en main de Turtle
Entrer les commandes suivantes dans la console, et observer le résultat obtenu dans la fenêtre graphique.
from turtle import * begin_fill()
color('pink') forward(50) left(90) forward(50) left(90) forward(50) left(90) forward(50) end_fill() up()goto(-300,0) down()
r=255 g=40 b=160
colormode(255) pencolor(r,g,b) fillcolor(20,200,120) begin_fill()
for i in range(5) : forward(100) left(144) end_fill() up()speed("fastest") goto(-200,200) down()
right(180) r=0
g=100 b=200
for i in range(255) : forward(20) right(180) up()
forward(20) left(90) forward(2) left(90) r = (r+1)%255 g = (g+1)%255 b = (b+1)%255 pencolor(r,g,b) down()
bye() 2°) Ecriture d’une première fonction avec le module math
Ecrivez une fonction qui prend en argument un angle en degrès et qui retourne le triplet de valeurs correspondant à (sinus de l’angle, cosinus de l’angle, tangente de l’angle)
Enfin ecrivez un programme qui affiche pour chaque angle en degrès les trois valeures calculées par la fonction.
3°) Création de son propre module de dessin
a- Etape 1 : Complétez le module de fonctions graphiques mod_dessin_avec_turtle.py décrit dans l'exemple.
Commencez par ajouter un paramètre angle à la fonction carre(), de manière à ce que les carrés puissent être tracés dans différentes orientations.
Définissez ensuite une fonction triangle(taille, couleur, angle) capable de dessiner un triangle équilatéral d’une taille, d’une couleur et d’une orientation bien déterminées.
b- Etape 2 : Testez votre module à l’aide d’un programme qui fera appel à ces fonctions à plusieurs reprises, avec des arguments variés pour dessiner une série de carrés et de triangles :
c- Ajoutez au module de l’exercice précédent une fonction etoile5() spécialisée dans le dessin d’étoiles à 5 branches.
Dans votre programme principal, insérez une boucle qui dessine une rangée horizontale de de 9 petites étoiles de tailles variées :
d- Enfin... laisser libre cours à votre imagination ….
( On peut même réaliser la représentation de fractales )