TP n°14 ; Débuter avec Python et turtle |
||
Noms : | ||
Centre d'intérêt : | CI 4 Gestion de l’information | |
Classe : | 1ère Sti2d Sin | |
Id programme : | sin15, sin31 | |
Conditions : | Seul , durée 3 heures. | |
Matériel : | - un ordinateur; |
|
Logiciel : | - le logiciel Python IDLE; - Utiliser le navigateur chrome; |
|
Document : |
Préambule
En 1989, le hollandais Guido van Rossum commence le développement du langage de programmation Python.
Python est un langage multiplateforme, c'est-à-dire disponible sur plusieurs architectures (compatible PC, tablettes, smartphones, ordinateur low cost Raspberry Pi...) et systèmes d'exploitation (Windows, Linux, Mac, Android...).
Le langage Python est gratuit, sous licence libre.
C'est un des langages informatiques les plus populaires avec C, C++, C#, Objective-C, Java, PHP, JavaScript, Delphi, Visual Basic, Ruby et Perl (liste non exhaustive).
Actuellement, Python en est à sa version 3.
Cependant, la version 2 est encore majoritairement utilisée.
Attention : Python 2 n'est pas compatible avec Python 3 !
Que peut-on faire avec Python ?
Beaucoup de choses !
- du calcul scientifique (librairie
NumPy
) - des graphiques (librairie
matplotlib
) - du traitement du son, de la synthèse vocale (librairie
eSpeak
) - du traitement d'image (librairie
PIL
), de la vision artificielle par caméra (frameworkSimpleCV
) - de la bio-informatique (librairie
Biopython
) - des applications avec interface graphique GUI (librairies
Tkinter
,PyQt
,wxPython
,PyGTK
...) - des jeux vidéo en 2D (librairie
Pygame
) - des applications multi-touch (framework
kivy
pour tablette et smartphone à écran tactile) - des applications Web (serveur Web
Zope
; frameworks WebFlask
,Django
) - interfacer des systèmes de gestion de base de données (librairie
MySQLdb
...) - des applications réseau (framework
Twisted
) - communiquer avec des ports série RS232 (librairie
PySerial
), en Bluetooth (librairiepybluez
)... - ...
Des dizaines de milliers de librairies sont disponibles sur le dépôt officiel PyPI
.
Installation
Sous Windows
Sous Windows, pour installer Python avec l'environnement de développement IDLE, il suffit de télécharger puis d'exécuter le fichier d'installation qui se trouve sur le site officiel :
https://www.python.org/downloads/windows
Une fois installé, vous pouvez lancer IDLE en allant dans :
Démarrer → Programmes → Python → IDLE (Python GUI)
La fenêtre Pyrhon :
Sous Linux
Python est pré-installé sur la plupart des distributions Linux.
IDLE
IDLE est un environnement de développement intégré (IDE en anglais : Integrated Development Environment) pour Python.
IDLE propose un certain nombre d'outils :
- un éditeur de texte (pour écrire le programme)
- un interpréteur (pour exécuter le programme)
- un débogueur (pour tester le programme)
Il existe d'autres IDE pour Python : Eclipse/Pydev, Eric Python IDE, Spyder ..
Scripts
Un programme est une séquence d'instructions.
Dans le cas d'un programme en langage Python, on parle souvent de script Python.
Un script se présente sous la forme d'un fichier texte avec l'extension .py
Horloge
Voici un exemple de script Python :
Enregistrer ce script sur votre bureau.
Ouvrir IDLE :
Démarrer → Programmes → Python → IDLE (Python GUI)
File → Open → horloge.py
L'éditeur de texte s'ouvre avec le code source du script (environ 60 lignes de code) :
Pour exécuter le script : Run → Run module (ou touche F5)
La planche à dessin de Python
"Turtle" est une librairie de python. Celle-ci permet de commander une tortue qui dessine!
Vous pouvez utiliser des fonctions comme turtle.forward(...) et turtle.left(...) qui peuvent se déplacer autour de la tortue.
Avant de pouvoir utiliser la tortue, vous devez l'importer. Nous vous recommandons de jouer avec elle dans l'interpréteur interactif d'abord, comme il y a un peu de travail supplémentaire nécessaire pour le faire fonctionner à partir de fichiers. Il suffit d'aller à votre terminal et tapez:
import turtle
turtle.forward(20)
Remarque
Bien qu'il puisse être tentant de simplement copier et coller ce qui est écrit sur cette page dans votre terminal, nous je vous encourageons à taper chaque commande. En effet de cette manière, vous retiendrez mieux les syntaxes.
turtle.forward(25)
turtle.left(30)
La fonction turtle.forward(...) indique à la tortue à aller en avant sur une distance donnée. turtle.left(...) prend un certain nombre de degrés que vous souhaitez faire pivoter vers la gauche. Il est également turtle.backward(...) et turtle.right(...) , aussi.
Remarque
Vous voulez un nouveau départ? Vous pouvez taper turtle.reset() pour effacer le dessin que votre turtle à réalisé. Nous reviendrons plus en détail sur turtle.reset() dans la suite de la séquence.
La tortue est juste représenté par un triangle. Ce n'est pas amusant! Mettons une tortue à la place avec l'instruction turtle.shape() :
turtle.shape("turtle")
Tellement mignon!
Si vous mettez les instructions dans un fichier, vous pourriez avoir remarqué que la fenêtre de la turtle disparaît après la fin du mouvement de la tortue. C'est parce que Python la ferme quand votre tortue a fini de bouger. Pour éviter cela, il suffit de mettre turtle.exitonclick() au bas de votre fichier.
Maintenant, la fenêtre reste ouverte jusqu'à ce que vous cliquez dessus:
import turtle turtle.shape("turtle") turtle.forward(25) turtle.exitonclick()
Remarque
Python est un langage de programmation, où l'indentation horizontale du texte est importante. Vous apprendrez tous à ce sujet dans le chapitre sur les fonctions. Mais pour l'instant il faut garder à l'esprit que placer des espaces ou des tabulations avant toute ligne de code Python peut provoquer une erreur inattendue. Vous pouvez essayer d'en ajouter pour vérifier comment python va se plaindre!
Dessin d' un carré
Remarque
Vous n'êtes pas toujours censé connaître immédiatement la réponse. Apprendre par essais et erreurs est constructif
exercice
Dessinez un carré comme dans l'image suivante:
Pour les coins, vous aurez probablement besoin d'un angle droit.
Solution
Bonus
Si vous voulez faire preuve de créativité, vous pouvez modifier votre forme avec les fonctions turtle.width(...) et turtle.color(...). Avant de pouvoir les utiliser, vous avez besoin de connaître sa syntaxe (par exemple ce qu'il faut mettre entre les parenthèses et ce que cela rendra). Pour le savoir , vous pouvez taper help(turtle.color) dans le shell Python. S'il y a beaucoup de texte, Python le met dans un pager. Appuyez sur la q pour quitter la pager.
Pointe
Avez-vous vu une erreur comme ceci:
NameError: name 'turtle' is not defined
en essayant d'afficher l'aide? En Python , vous devez importer les librairies avant de pouvoir se référer à eux. Donc dans un nouveau shell Python , vous aurez besoin d'import turtle pour utiliser help(turtle.color).
Une autre façon de découvrir les fonctions est de parcourir la documentation en ligne .
Prudence
Si vous vous trompez, vous pouvez dire à la tortue d'effacer ses traces avec turtle.reset(), ou annuler l'étape la plus récente avec turtle.undo() .
Remarque
Comme vous avez pu lire dans l'aide, vous pouvez modifier la couleur avec turtle.color( colorstring ) . Ceux - ci ne se limite pas à "red", "green" et "violet". Regarderr ce manuel des couleurs pour avoir une liste plus exhaustive.
Si vous souhaitez définir une valeur RGB, assurez - vous d'exécuter turtle.colormode(255) en premier. Ensuite , par exemple , vous pouvez exécuter turtle.color(215, 100,170) pour définir la couleur rose.
Dessin d' un rectangle
exercice
Pouvez-vous dessiner un rectangle aussi?
Solution
Bonus
Que diriez-vous d'un triangle? Dessinez un triangle équilatéral.
Plus de places
exercice
Maintenant, dessinez un carré incliné. Et un autre, et un autre. Vous pouvez expérimenter les angles entre les carrés.
La photo montre trois carrés inclinés de 20 degré. Mais vous pouvez essayer 20, 30 et 40 degré, par exemple.
Solution
Illusions d'optique
Voir ici un article de Wikipédia traitant de certaines illusions d'optique
Les commandes que l'on peut demander d'exécuter pour la tortue sont:
- turtle.reset():efface tout
- turtle.goto(x,y): le robot va au point de coordonnées (x,y)
- turtle.forward(d): le robot avance dans sa direction de d pixels
- turtle.backward(d): le robot recule dans sa direction de d pixels
- turtle.left(angle): tourne sur la gauche d'un angle donné en degrés
- turtle.right(angle): tourne sur la droite d'un angle donné en degrés
- turtle.up():relever le crayon pour pouvoir avancer sans dessiner
- turtle.down():abaisser le crayon pour dessiner
Exercices
- Faire un programme qui dessine deux segments perpendiculaires, de même longueur et tel que l'extrémité de l'un soit le milieu de l'autre
- Faire un programme qui tracent deux segments de même longueur, l'un proche de l'intersection de deux droites se coupant comme sur le dessin suivant.
Sources :
- https://opentechschool.github.io/python-beginners/en/simple_drawing.html
- http://www.mathly.fr/tp1_opArt.php
- http://fsincere.free.fr/isn/python/cours_python.php
- python.org