getpost27
Bac STI2D

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 (framework SimpleCV)
  • 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 Web Flask, 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 (librairie pybluez)...
  • ...

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)

 Python dans le menu windows

La fenêtre Pyrhon :

IDLE Python Shell

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 :

horloge.py

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) :

IDLE Python

Pour exécuter le script : Run → Run module (ou touche F5)

 

script Python

 

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)

Script turtle
 

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)
_images / forward.png
  turtle.left(30)
_images / left.png

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:

_images / square.png

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?

_images / rectangle.png

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.

_images / tiltedsquares.png

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
Le but est de faire tracer à la tortue l'illusion suivante

 

Exercices

  1. 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
  2. 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 :

 

 

En poursuivant votre navigation sur mon site, vous acceptez l’utilisation des Cookies et autres traceurs  pour réaliser des statistiques de visites et enregistrer sur votre machine vos activités pédagogiques. En savoir plus.