LANGAGE PYTHON
- Modules et fonctions
Regarder la vidéo sur les "modules et turtle" (cliquez-ici) puis traiter les exercices ci-dessous:
Jusqu'à présent vous n'avez utilisé que des instructions natives du langage python. Il est aussi possible d'utiliser des instructions écrites par d'autres programmeurs; Ces instructions appelées fonctions sont alors rangées dans des bibliothèques appelées modules. Vous devez citer le module et importer ses fonctions dans votre programme pour pouvoir les utiliser.
- Exemple: le module Turtle
Le module turtle permet de contrôler une tortue qui dessine à l'écran. Ce module contient un ensemble d'instructions (des fonctions) qui permettent d'animer la tortue à l'écran ( le tableau des fonctions est découvert plus bas):
On peut importer toutes les fonctions du module
# le signe * veut dire toutes les fonctions de la bibliothèque turtle
from turtle import *
On pourrait n'importer que certaines des fonctions du module:
# dans cet exemple on importerait les deux fonctions goto et ht du module turtle
from turtle import goto, ht
Exercice 4.1
Tester le code ci-dessous:
from turtle import *
# on définit l'épaisseur du trait à 3 pixels avec la fonction width(..)
width(3)
# on sélectionne la couleur rouge avec la fonction color(..)
color("red")
# depuis le centre de coordonnées x=0,y=0 on avance de 50 pixels selon x, on reste à y=0 avec la fonction goto(..)
goto(50,0)
# on monte ensuite de 50 pixels selon y => x=50 y=50 avec la fonction goto(..)
goto(50,50)
# on revient en x = 0 en restant à y=50 avec la fonction goto(..)
goto(0,50)
# on revient au centre avec la fonction goto(..)
goto(0,0)
# on cache la tortue avec la fonction ht()
ht()
# on donne un titre au dessin avec la fonction title(...)
title("un carré rouge")
Les principales fonctions du module Turtle sont:
Fonctions |
description |
goto(x,y) |
aller au point de coordonnées x, y |
forward(d) |
avancer d'une distance d en pixels |
backward(d) |
reculer d'une distance d en pixels |
left() |
pivoter à gauche de l'angle en degré |
right() |
pivoter à droite de l'angle en degré |
circle( r, ) |
dessiner un arc de cercle de rayon r et d'angle |
up() |
relever le crayon ( interrompt le dessin) |
down() |
redescend le crayon ( reprendre le dessin) |
width(e) |
fixer l'épaisseur du trait à la valeur e pixels |
color(c) |
donne la couleur c au trait , les couleurs peuvent être nommées en Anglais: "red", "yellow", "pink", "blue", etc.. |
begin_fill() |
active le coloriage de la forme |
end_fill() |
désactive le coloriage de la forme |
reset() |
efface le dessin |
speed(s) |
définit une vitesse s avec les chaines "slow", "normal", "fast", "fastest", on peut aussi donner un nombre entre 1 ( très lent) et 10 (très rapide) |
title(t) |
donne le titre t au graphe |
ht() |
cache la tortue |
Exercice 4.2
Tester maintenant le code ci-dessous:
from turtle import *
width(2)
color("red")
circle (4, 180) # dessin d'un arc de cercle de 180° (1/2 cercle) et de rayon 4px
width(3)
color("blue")
circle(9,180)
width(4)
color("red")
circle(16,180)
width(5)
color("blue")
circle(25,180)
width(6)
color("red")
circle(36,180)
width(7)
color("blue")
circle(49,180)
width(8)
color("red")
circle(64,180)
ht()
title("spirale")
Exercice 4.3
Modifier le code précédent pour obtenir les quatre dessins suivants (voir l'aide ci-dessous avant d'essayer de faire)
Aide: il vous faut d'abord connaître le système de coordonnées de turtle:
si on trace un cercle complet de rayon 55 pixels avec l'instruction circle(55,360), on obtient:
le cercle est centré dans la fenêtre, son rayon est de 55 pixels, les points rouge, vert, bleu et orange sont sur le cercle, ils ont la coordonnée X ou la coordonnée Y qui vaut 55.
Le point rouge a une coordonnée X = -55 et celui orange a une coordonnée Y = -55.
Pour le dessin de cercles concentriques ( même centre) , on peut utiliser les valeurs données ci-dessous; l'extrait de code vous montre comment tracer le cercle rouge et le cercle bleu avec ces coordonnées:
Pour le dessin de la tomate, vous fixerez que le 0 sera au point de jonction entre les feuilles et le fruit; une feuille est un quart de cercle ( le code d'une feuille est donné ci-dessous).
- Fonctions
Une fonction est un bloc d'instructions auquel on a donné un nom. On reconnaît une fonction aux deux parenthèses qui suivent son nom: print(...) est une fonction que vous utilisez souvent, toutes les instructions du module turtle sont des fonctions, vous avez pu remarquer qu'à aucun moment vous avez eu accès aux blocs de code de ces fonctions, c'est le travail de l'interpréteur de lire les blocs d'instructions pour savoir que faire lorsqu'on lui demande l'exécution d'une fonction.
- Comment écrire une fonction?
Une fonction se déclare avec le mot clé def suivi de son nom, voici une fonction appelée dessine_carré_de_cinquante() qui dessine un carré de 50 px avec turtle :
from turtle import *
def dessine_carré_de_cinquante():
width(3)
color("red")
goto(50,0)
goto(50,50)
goto(0,50)
goto(0,0)
# Pour l'utiliser, il suffit de l'appeler dans le code comme pour les autres fonctions:
dessine_carré_de_cinquante()
left(45)
goto(50, 50)
goto(0,50)
right(45)
goto(50,0)
ht()
Exercice 4.4
Tester le code ( vous pouvez copier-coller les parties ci-dessus)
- Fonction avec paramètres
Dans l'exemple précédent, il aurait été préférable que le carré soit de taille réglable, d'épaisseur, de couleur et de position x et y quelconque. Pour ça les valeurs qu'utilisent la fonction devraient être des variables que l'on renseigne lors de l'appel de la fonction, les noms des variables qu'utilisent la fonction sont placés dans les parenthèses séparées par des virgules, lors de la définition de la fonction, exemple:
from turtle import *
# une fonction qui dessine un carré de taille, position et couleur réglable
def dessine_carré (epaisseur, taille, position_x, position_y, couleur ):
width(epaisseur)
color(couleur)
up()
goto(position_x, position_y)
down()
goto(position_x + taille, position_y)
goto(position_x + taille, position_y + taille)
goto(position_x, position_y + taille)
goto(position_x, position_y)
# ici on appelle la fonction avec epaisseur = 2, taille=100, position_x=50, position_y=50, couleur= "red"
dessine_carré (2, 100, 50, 50, "red" )
# on lève le stylo
up()
# on va à la coordonnée x=-100 et y = 0
goto(-100,0)
# on baisse le stylo
down()
# on appelle la fonction avec epaisseur = 2, taille=100, position_x=-100, position_y=0, couleur= "blue"
dessine_carré (2, 100, -100, 0, "blue" )
# on cache la tortue
ht()
Exercice 4.5
Tester le code ci-dessus ( vous pouvez copier-coller les parties)
Exercice 4.6
Modifier le code pour obtenir l'image ci-dessous, attention : le grand rectangle noir ci-dessous est la fenêtre pas un carré noir à dessiner:
Vous pouvez passer au chapitre suivant "synthèse"
Créé avec HelpNDoc Personal Edition: Produire des aides en ligne pour les applications Qt