Découverte de la Tortue

Installation de Python sur son ordinateur

Aller ici sur le site officiel de Python pour puis sélectionner Downloads, normalement il reconnaît le système d'exploitation de la machine et vous propose de télécharger la version de Python adéquate (choisir la dernière 3.6.1).

Après installation chercher Python dans les programmes et lancer le programme IDLE (c'est un environnement de développement intégré)

Une fenêtre apparaît c'est l'interpréteur dans lequel on voit le résultat de l'exécution des instructions.

Dans la barre des menus sélectionner File ou Fichier puis New File ou Nouveau Fichier, l'éditeur de texte apparaît

Ecrire dans l'éditeur cette instruction simple print("Python fonctionne!") puis faire CTRL-S pour sauvegarder le fichier et lui donner le nom test.py Executer ce programme très simple en faisant F5 et dans l'interpréteur on voit apparaître Python fonctionne!

Environnement de travail

Aller dans Outils >Lycée > Informatique >Python 3.6>IDLE (Integrated DeveLopment Environment)ou cliquer sur le raccourci IDLE 7 sur le bureau

Faire new File pour ouvrir l'éditeur de texte pour pouvoir écrire un programme

A chaque fois qu'un programme est écrit le sauvegarder en faisant CTRL S. La première fois donner un nom significatif au programme, avec un suffixe .py

Ensuite pour exécuter le programme faire F5

Chaque élève fait le TP sur un poste en autonomie et doit faire un compte-rendu soigné répondant à toutes les questions

Etat d'esprit

Les travaux pratiques sont l'occasion d'expérimenter. N'ayez pas peur de tester vos idées!

Découverte de la Tortue

La tortue est pareil à un "robot" que vous pouvez déplacer par des commandes simples comme aller tout droit, tourner à droite, etc...et ce robot peut laisser une trace de ses déplacements, ce qui nous permettra de dessiner des figures géométriques

Elle apparaît à l'écran sous la forme d'un triangle (voir dessin ci-dessus on a exagéré les dimensions de la tortue). Elle est repérée par des coordonnées (x,y) mais aussi par un angle entre la direction vers laquelle elle "regarde" et l'axe horizontal

Les commandes usuelles que l'on peut demander d'exécuter au robot sont (il y en a d'autres!):

Premières figures géométriques

Pour utiliser la tortue il faut importer la bibliothèque python qui gère la tortue, ainsi tout programme python utilisant la tortue doit contenir au préalable la ligne

from turtle import *

Voici sur la fenêtre de gauche l'interpréteur python, et à droite la fenêtre graphique où on voit la tortue dans son état initial, en (0,0) regardant vers l'ouest

Dans l'interpréteur python on peut faire exécuter à la tortue des actions une à une pour lui faire tracer un carré puis un triangle équilatéral (voir ci-dessous)

On peut faire la même chose en utilisant cette fois-ci l'éditeur de texte.Le programme suivant dessine un carré de 100 pixels de côté

L'éditeur de texte est déjà plus souple que l'interpréteur car on peut utiliser le copier-coller (CTRL-C puis CTRL-V) pour écrire 4 fois la séquence forward(100) et left(90)

Copier le et sauvegarder le dans un fichier nommé par exemple carre.py, puis exécuter le. La vitesse de déplacement de la tortue est au minimum (speed(1)). Prendre le temps de bien comprendre le déplacement de la tortue en lien avec le code, quitte à exécuter plusieurs fois le programme


from turtle import *
speed(1)

forward(100)
left(90)

forward(100)
left(90)

forward(100)
left(90)

forward(100)
left(90)

Commentaires

  1. Chaque ligne du programme correspond à une action de la Tortue, les actions ou instructions sont exécutées en séquence dans l'ordre
  2. La dernière ligne semble inutile mais elle a deux intérêts: elle remet la tortue dans son état initial, et on voit mieux la répétition
  3. On peut simplifier ce programme ainsi :
    
    from turtle import *
    speed(1)
    
    #répéter 4 fois
    for i in range(4):
    
        #avancer de 100 pixels
        forward(100)
        
        #tourner à gauche de 90 degrés
        left(90)
    
    
  4. Les lignes commençant par # ne sont pas interprétées et exécutées, ce sont des commentaires qui expliquent les instructions
  5. Prenons un peu de temps pour mieux comprendre ce programme. range(4) peut être vu comme l'ensemble des nombres 0, 1, 2 et 3 et l'instruction for i in range(4) peut être traduite par "pour chaque nombre i dans 0,1,2 et 3 faire", ce qui revient à répéter 4 fois toutes les instructions commençant après les deux points : et décalées de 3 ou 4 caractères vers la droite par rapport au f de for (indentation)
  6. Quelle est la différence entre le programme précédent et le suivant ?
    
    from turtle import *
    speed(1)
    
    #répéter 4 fois
    for i in range(4):
    
        #tourner à gauche de 90 degrés
        left(90)
        
        #avancer de 100 pixels
        forward(100)
        
        
    
    
  7. Pour bien comprendre l'indentation on va rajouter l'instruction hideturtle() qui va cacher la tortue, soit dans la boucle
    
    from turtle import *
    speed(1)
    
    for i in range(4):
    
        forward(100)
        left(90)
        hideturtle()
    
    
  8. Soit en dehors de la boucle
    
    from turtle import *
    speed(1)
    
    for i in range(4):
    
        forward(100)
        left(90)
    hideturtle()
    
    
    Bien comprendre la différence entre ces deux programmes

Exercices

  1. Ecrire un programme python qui trace un triangle équilatéral, un hexagone régulier, un octogone régulier et enfin un dodécagone(12) régulier

    Bien réfléchir: De quel angle en degrés dois-je tourner sur la gauche (ou la droite), plusieurs fois pour faire un tour complet sur moi-même, c'est à dire un tour de 360 degrés

  2. Tracer un heptagone régulier revient à diviser 360 par 7 ce qui donne un nombre rationnel avec comme écriture décimale périodique 51.428571

    Ecrire un programme qui trace un heptagone régulier, essayer avec left(51), puis left(51.4) puis left(51.43)

  3. Vérifions maintenant sur deux cas particuliers la propriété suivante:

    Un nombre n est premier si tous les polygones réguliers étoilés à n sommets (où les sommets sont joints régulièrement de 1 en 1, puis de 2 en 2, etc... sont d'un seul tenant

    Considérons d'abord les pentagones réguliers étoilés

    Le premier est obtenu en joignant les sommets dans l'ordre 1,2,3,4,5. Tracer un pentagone régulier de 100 pixels de côté

    Maintenant on va joindre les sommets dans l'ordre 1,3,5,2,4. De quel angle tourner la tortue pour viser le sommet 3 en partant du sommet 1 Que vaut en pixels approximativement la distance entre le sommet 1 et le sommet 3

    Pour des raisons de symétrie, il n'y a pas d'autres pentagones étoilés et on a vu qu'ils sont tous d'un seul tenant

    Tracer les deux pentagones l'un dans l'autre comme ceci

    Par contre si l'on joint les sommets d'un octogone de 2 en 2, dans un premier temps on obtient un carré 1,3,5,7 puis un autre 2,4,6,8

    8 n'est pas premier car on a obtenu deux carrés disjoints

  4. Faites preuve de créativité en inventant vos propres figures en utilisant par exemple certaines de ces fonctions:

    • pencolor(couleur): change la couleur du trait, couleur est une chaîne de caractère comme "red" ou "green" ou "yellow"...
    • width(epaisseur): change l'épaisseur du trait, epaisseur est un nombrede 1 à ...
    • speed(vitesse): change la vitesse de 1 à ... , la vitesse maximale est 0.
    • On peut vouloir changer la couleur de manière aléatoire dans ce cas il faut importer la bibliothèque random en ajoutant au début du fichier from random import *

      Ensuite ajouter l'instruction pencolor(choice(["red","green","violet","yellow"])) avant forward(). La fonction choice() retourne une couleur "au hasard" parmi celles qui sont entre les crochets []

Que retenir ?

  1. Un programme est une suite d'instructions exécutées dans l'ordre
  2. Répéter n fois une suite de p instructions s'écrit en python:
    
    
    for i in range(n):
    
        instruction 1
        ...
        instruction p