Le Python et la tortue

- initiation à la programmation -

Le language de programmation Python est à la fois puissant et plutôt facile à apprendre. Nous allons utiliser le module Turtle qui présente un pointeur/indicateur à l’écran que l’on va déplacer à l’aide de différentes commandes. Ce module simule le déplacement d’une tortue ; ce concept informatique ayant été inventé dans les années 1960 ; en particulier pour enseigner certaines bases de la programmation.

Chaque mouvement de l’indicateur laissera la trace graphique de son passage (un trait, un ensemble de pixels). Cet outil permettra de créer quelques dessins ou graphiques à l’aide de notion de programmation rudimentaires.

La première chose à faire est de démarrer l’interpréteur de commandes Python. Pour cela, il faut lancer le Terminal depuis le dossier Applications > Utilitaires > Terminal.

Une fois le Terminal ouvert, il faut saisir la commande ‘python’, puis Entrée.

$ python

(Le sigle ‘$’ est ici pour montrer que nous sommes dans l’interpréteur du Terminal.)

Python 2.7.10 (default, Oct 23 2015, 19:19:21)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Les 3 chevrons « >>>  » indiquent que l’on est bien dans l’interpréteur Python. Et nous pouvons donc commencer à lancer des commandes de ce language.

 

Le module ‘turtle’ n’est pas chargé en mémoire par défaut. Pour ce faire, il faut saisir la commande ‘import’ :

>>> import turtle

A la fin de chaque commande, il ne faut pas oublier d’appuyer sur la touche Entrée pour l’exécuter.

Le module ‘turtle’ contient beaucoup de commandes. Pour les utiliser plus facilement, on va les charger directement en mémoire.

>>> from turtle import *

Nous pouvons donc maintenant afficher la fenêtre graphique du module avec son indicateur au centre :

>>> showturtle()

puis appuyer sur Entrée

python-turtle-indicateur

La flèche indiquant la direction de déplacement, la commande ‘forward’ (avancer) permet de faire bouger l’indicateur (ici de 100 pixels) ; comme si on faisait faire une centaine de petits pas à la tortue :

>>> forward(100)

Les parenthèses sont ici importantes car on appelle une fonction qui prend un paramètre.

python-turtle-trace1

Chaque déplacement laisse la trace de son passage.

Pour changer la direction du prochain déplacement, on utilise les fonctions ‘left’ et ‘right’ en indiquant le nombre de degrés de rotation.

>>> left(90)

Puis on déplace à nouveau l’indicateur depuis sa position et sa direction actuelle :

forward(100)

(On peut appuyer autant de fois que nécessaire sur les touches flèche-haut/flèche-bas du clavier pour rappeler les précédentes commandes saisies. Une fois la commande trouvée, on appuie sur Entrée pour l’exécuter à nouveau.)

python-turtle-trace2

En enchaînant les différentes commandes et fonctions, il est possible de réaliser des graphismes plus ou moins élaborés.

La fonction reset() permet d’effacer l’écran et recommencer depuis le départ.

 

Voici quelques exemples d’enchaînements de commandes :

forward(100)
left(90)
forward(100)
left(90)
forward(100)
left(90)
forward(100)

Vous pouvez copier/coller les 7 commandes ci-dessus dans l’interpréter Python pour dessiner un carré.

 

Pour une petite maison (c’est mignon), on fait :

right(90)
forward(100)
left(90)
forward(100)
left(90)
forward(100)
left(45)
forward(70)
left(90)
forward(70)
left(135)
forward(100)

python-turtle-maison

 

 

QUELQUES AUTRES COMMANDES/FONCTIONS UTILES

- undo() : annuler le dernier déplacement / la dernière rotation

- up() : faire en sorte que l’indicateur ne laisser plus de trace lors de ses prochains déplacements. Comme si on soulevait la pointe du crayon de la feuille de papier.

- down() : réactiver les tracés lors des déplacements

- color() : changer la couleur des prochains tracés. Exemples : color(« red »), color(« blue ») ; les guillemets sont ici importants car le paramètre passé à la fonction est de type chaîne de caractères

- hideturtle(): cacher l’indicateur

- circle() : tracer des cercles. Deux paramètres sont possibles : le premier est le rayon du cercle, le second est le nombre de degrés du tracé

- quit() : quitter l’interpréteur Python

 

QUELQUES EXEMPLES DE DESSINS

- une spirale :

circle(100, 180)
circle(90, 180)
circle(80, 180)
circle(70, 180)
circle(60, 180)
circle(50, 180)
circle(40, 180)
circle(30, 180)
circle(20, 180)
circle(10, 180)

python-turtle-spirale

 

Une maison avec un toit rouge un peu plus épais :

right(90)
forward(100)
left(90)
forward(100)
left(90)
forward(100)
color("red")
width(3)
left(45)
forward(70)
left(90)
forward(70)
left(135)
forward(100)

 

Astuces ++ :

- pour transformer le dessin produit en PDF :

>>> getcanvas().postscript(file="dessin1.eps")

  Le fichier est enregistré par défaut dans votre petite maison. Un double-clic sur ce fichier permet de l’ouvrir avec Aperçu et de le transformer en PDF.

Sinon, vous pouvez toujours aussi faire une copie d’écran. 

- Si on met un ensemble de commandes dans un fichier .py, il est alors possible de démarrer l’interpréteur Python en exécutant l’ensemble des commandes présente dans ce fichier ;

$ python mon-fichier-de-commandes.py

- Pour obtenir de l’aide sur le module ‘turtle’, il suffit de saisir la fonction suivante dans l’interpréter Python :

>>> help(turtle)

 

Pythonez bien !