1. Environnement de programmation Python 2. Introduction

publicité
INITIATION PYTHON
1.
Environnement de programmation Python
1.1. Installer Python. Sous Windows, télécharger Python version 3 à l'adresse
http ://www.python.org/download en cliquant sur "Windows x86 MSI Installer". Puis exécuter le logiciel
d'installation.
Sous Mac OS X, il semblerait que Python soit préinstallé. Sinon, on peut l'installer ou le mettre à jour à
partir de la même adresse.
Il y a des diérences importantes entre les versions 2 et 3 du langage Python. La documentation qui suit est
celle de la version 3. Vériez que vous avez bien installé cette version.
1.2. Utiliser Python. Lancer l'interpréteur Python : dans le menu Windows, cliquer sur le programme
IDLE.
Dans la fenêtre "Python Shell" qui s'est ouvert : File/New Window. C'est dans cette deuxième fenêtre
que vous allez saisir votre programme. Pas dans la fenêtre "Python Shell".
Dans la nouvelle fenêtre qui s'est ouvert : File/Save As ... (indiquez le nom et l'emplacement du chier qui
contiendra votre programme ; donnez-lui le suxe .py).
Saisissez votre programme. La coloration syntaxique permet de détecter les erreurs de syntaxe les plus supercielles. Pour sauvegarder : Ctrl-S.
Pour lancer votre programme : F5. La fenêtre "Python Shell" devient la fenêtre active. C'est dans cette
fenêtre qu'ont lieu les Entrées/Sorties de votre programme. C'est aussi dans cette fenêtre que s'achent les
messages d'erreur.
Pour les erreurs de syntaxe, revenir dans la fenêtre où vous avez saisi votre programme : le petit carré rouge
qui y est apparu est en général juste après votre erreur de syntaxe.
Pour les autres messages d'erreur, lire le libellé de la première erreur achée et relever le numéro de ligne
indiqué. Dans la fenêtre où vous avez saisi votre programme : Alt-G puis saisissez le numéro de la ligne. Le
curseur se positionne alors sur la ligne où s'est produit l'erreur.
Si un programme boucle indéniment, l'arrêter avec Ctrl-C.
1.3. Debugger. Pour trouver les bugs commencez par rééchir. Si cela ne sut pas, ajoutez des "print"
dans votre programme pour en suivre le déroulement.
2.
Introduction au langage Python grâce à la tortue
Le langage Logo a été inventé pour initier les enfants à la programmation. Une tortue parcourt l'écran en
suivant les ordres qui sont donnés par l'enfant. Elle tient un crayon au bout de sa queue, de sorte que sa
trajectoire s'ache à l'écran. Voici les principales instructions qui peuvent être données à la tortue :
1
2
Initiation Python
2.1. Mémento.
clear(): eace l'écran
forward(d): la tortue avance de d pixels
backward(d): la tortue recule de d pixels
goto(x,y): la tortue se déplace jusqu'au point de coordonnées (x,y) (Le repère est centré dans l'écran.)
xcor(): fonction donnant l'abscisse de la position courante de la tortue, en pixels
xcor(): fonction donnant l'ordonnée de la position courante de la tortue, en pixels
left(a): la tortue tourne sur place de a degrés dans le sens trigonométrique
right(a): idem dans le sens des aiguilles d'une montre
circle(r,a): la tortue eectue un virage d'un angle a avec un rayon de courbure r ; si r>0 le virage
s'eectue dans le sens trigonométrique, sinon il s'eectue dans le sens des aiguilles d'une montre ; si
le deuxième paramètre est omis, elle eectue un looping complet
up(): la tortue lève le crayon
down(): la tortue abaisse le crayon
2.2. Prendre un bon départ. Python a été installé avec diérents modules, spécialisés dans diérentes
tâches. Pour utiliser un module il faut commencer par l'importer. Ici notre programme va utiliser le module
"turtle". Il doit donc commencer par "from turtle import *" sur la première ligne. Pour voir la tortue à
l'écran, il faut lui donner une forme. Cela se fait avec l'instruction shape("turtle"). On peut ensuite dénir
la taille de la fenêtre dans laquelle va se déplacer la tortue avec l'instruction screensize(l,h) où l et h sont
les largeurs et hauteurs en pixels. Enn c'est une bonne habitude de commencer par eacer l'écran avec
l'instruction clear(). L'encadré ci-après reprend ces quatre instructions par les quelles tous les programmes
de ce tutoriel devraient commencer.
from turtle import *
shape("turtle")
screensize(1000,1000)
clear()
Saisissez et exécutez ce premier programme. Si vous ne savez pas comment faire,reportez-vous au paragraphe
2.2. : utiliser Python. Pour fermer la fenêtre de la tortue, saisissez bye() dans la fenêtre "Python Shell". Si
la taille de la fenêtre de la tortue ne vous convient pas, remplacez 1000 par une autre valeur.
Sauvegardez chaque exercice dans un chier diérent. Certains exercices reprennent des programmes écrits
auparavant.
2.3. Succession d'instructions. Pour donner plusieurs instructions successives à la tortue, il sut d'écrire
ces instructions à la suite les unes des autres, en allant à la ligne à chaque fois, avec la même indentation.
Exercice 1. Ecrire un programme qui trace un triangle équilatéral. S'aider du memento. S'assurer qu'à la
n de l'exécution du programme la tortue est au même endroit et regarde dans la même direction. Cela
facilitera certains exercices ultérieurs.
2.4. Variables.
Exercice 2. Modier le programme précédent pour qu'il trace un triangle deux fois plus grand.
Vous avez probablement dû faire 3 modications dans le programme précédent. En utilisant une variable,
nous allons pouvoir réécrire le programme précédent de manière à pouvoir changer la taille du triangle en ne
modiant qu'une seule ligne du programme.
En Python comme dans la plupart des langages informatiques, les variables sont désignées par plusieurs lettres.
C'est une bonne pratique d'en proter et de donner des noms évocateurs aux variables. Ici par exemple nous
allons nommer notre variable longueur_côté. Pour demander à l'ordinateur de mettre une valeur dans une
variable, on utilise l'instruction d'aectation. Ici par exemple, si on veut que la longueur des côtés de notre
triangle soit de 30 pixels, on écrira : longueur_côté=30.
Initiation Python
3
Exercice 3. Modier le programme précédent en aectant une valeur à la variable longueur_côté au
début du programme, puis en remplaçant dans les déplacements de la tortue chaque valeur numérique par
longueur_côté. Vérier que maintenant on peut changer la taille du triangle en modiant une seule ligne du
programme.
2.5. Instruction d'entrée. Nous allons utiliser l'instruction d'entrée input. Exemple :
âge=int(input("Entrez votre âge : "))
La fonction input a un argument, la chaîne de caractères "Entrez votre âge : ". C'est ce message qui sera
aché dans la fenêtre "Python Shell" pour demander à l'utilisateur de saisir son âge. Lorsque l'utilisateur
aura saisi son âge (supposons qu'il ait 17 ans) et frappé sur la touche Entrée, la fonction input retournera la
chaîne de caractères "17". La fonction input retourne toujours une chaîne de caractères. Si nous avons besoin
de l'âge sous la forme d'un entier, il faut appliquer la fonction de conversion int comme ici. Pour convertir
une chaîne de caractères en un nombre réel, on aurait utilisé la fonction oat à la place de la fonction int.
Exercice 4. Modier le programme précédent de manière à ce que la longueur du côté du triangle puisse
être saisie par l'utilisateur.
2.6. Instruction de sortie. Pour acher un résultat, un programme peut utiliser l'instruction print(expr1,expr2,...)
qui évalue les expressions expr1, expr2, ... puis ache le résultat dans la fenêtre "Python Shell". Certaines
de ces expressions peuvent être des chaînes de caractères entre guillemets. Exemple :
print("La somme de 2 et 3 vaut",2+3)
Exercice 5. Modier le programme précédent de manière à ce qu'il ache la hauteur du triangle en pixels.
On n'utilisera pas de formule mathématique pour calculer cette hauteur. Il est plus simple d'acher l'ordonnée
d'un de ses sommets quand la tortue s'y trouve.
2.7. Test. On utilise un test en respectant cette syntaxe :
if <condition> :
# Bloc d'instructions n°1
else :
# Bloc d'instructions n°2
Si la condition est vériée, le programme exécute le bloc d'instructions n°1, sinon il exécute le bloc d'instructions n°2. Comme pour la boucle "tant que" la condition peut contenir des opérateurs de comparaison comme
<, >, <=, >=, ==, != et des connecteurs logiques comme and, or, not.
Il est important que les blocs d'instructions soient indentés (décalés) par rapport au "if" et au "else". En
Python, c'est l'indentation qui permet de délimiter les blocs d'instructions.
La partie "else" est facultative.
Exercice 6. Reprendre l'exercice précédent. Mais au lieu d'acher la valeur de la hauteur du triangle,
on ache "Succès" lorsque cette hauteur est comprise entre 95 et 100 pixels, "Echec" sinon. En lançant le
programme avec diérentes longueurs de côté, déterminer la longueur du côté d'un triangle dont la hauteur
est comprise entre 95 et 100 pixels.
2.8. Boucle "pour".
Exercice 7. Ecrire un programme qui trace la gure suivante :
Initiation Python
4
Avez-vous tiré les leçons de l'exercice précédent ? Il convient d'utiliser une variable qui contiendra la longueur
du plus petit segment. Si vous appelez cette variable lg, alors toutes les longueurs s'exprimeront facilement à
l'aide de lg. Elles vaudront 2*lg, 3*lg, 4*lg (comme avec votre calculatrice, la multiplication se note *). Après
avoir éventuellement corrigé votre programme, vériez qu'on peut changer la taille de la spirale en changeant
simplement la valeur de lg.
Avez-vous remarqué que votre programme eectue 4 fois la même chose : une première fois avec des longueurs
lg, une deuxième fois avec des longueurs 2*lg, une troisième fois avec des longueurs 3*lg, une quatrième fois
avec des longueurs 4*lg. Pour éviter de recopier 4 fois la même chose, nous allons utiliser ce que nous
appellerons une "boucle pour". Voici une version encore améliorée du programme :
lg=20
for i in range(1,5) :
forward(i*lg)
left(90)
forward(i*lg)
left(90)
Les lignes indentées sont répétées 4 fois : une première fois avec la variable i valant 1, une deuxième fois avec
i valant 2, une troisième fois avec i valant 3 et une quatrième fois avec i valant 4. Pour obtenir ce résultat on
fait précéder ces quatres lignes par "for i in range(1,5)" qui crée une variable i et lui donne successivement
toutes les valeurs entières de 1 inclus à 5 exclus. Rentrez ce programme et testez-le.
Exercice 8. Ecrire un programme qui trace la gure suivante, constituée de demi-cercles de plus en plus
grands, en utilisant une boucle "pour". Comme l'indique le mémento, pour tracer un demi-cercle de rayon r,
on utilise l'instruction circle(r,180).
Exercice 9. Revenons à notre programme qui trace un triangle équilatéral. Repartez de la version expurgée
de tout ce qui concerne la hauteur. Vous avez remarqué qu'il répète 3 fois les mêmes instructions. Simpliez-le
en utilisant une boucle "pour".
Dans ce dernier exercice, vous avez remarqué que la variable i (vous n'êtes pas obligé de l'appeler i dailleurs)
n'est pas utilisée à l'intérieur de la boucle. Ainsi une boucle "pour" peut être utilisée pour répéter plusieurs
fois exactement les mêmes instructions.
2.9. Boucle "tant que". Dans une boucle "tant que", les instructions indentées sont répétées tant que
la condition indiquée après le while est vériée. Cette condition peut contenir des opérateurs de comparaison comme <, >, <=, >=, ==, != et des connecteurs logiques comme and, or, not. A titre d'exemple le
programme suivant ache les carrés parfaits inférieurs à 700.
i=0
while i*i<700 :
print(i*i)
i=i+1
Exercice 10. Ecrire un programme qui fait avancer la tortue de 150 pixels, la fait tourner de
× 360° ,
fait avancer la tortue de 150 pixels, la fait tourner de pq × 360° , fait avancer la tortue de 150 pixels, la fait
tourner de pq × 360° etc jusqu'à ce que la tortue soit revenue à son point de départ. p et q sont des entiers
p
q
Initiation Python
5
saisis par l'utilisateur du programme. Commencer par tester p = 3 et q = 5. Puis expérimenter diérentes
valeurs de p et q . Attention : les fonctions xcorr et ycorr produisent des coordonnées réelles et à cause des
erreurs d'arrondie (auxquelles aucun ordinateur n'échappe) la tortue ne revient pas exactement au point de
coordonnées (0 ;0). La fonction int, qui arrondit un réel à l'entier le plus proche, pourra donc être utile pour
éviter que le programme ne se poursuive indéniment.
2.10. Variable mathématiques / Variables informatiques ; Egalité / Aectation. Les variables
mathématiques ne changent jamais de valeur alors que les variables informatiques changent en général de
valeur pendant que le programme s'exécute. Pour modier la valeur d'une variable informatique, on utilise
une instruction d'aectation de la forme : nom_de la variable=expression. L'expression est évaluée puis le
résultat de cette évaluation est aecté à la variable. Pour augmenter la valeur de la variable x de 1, on écrira
donc x=x+1. On voit bien que ce = n'a pas la même signication qu'en mathématiques où x=x+1 serait
faux. L'équivalent en Python du = mathématique est le == qu'on peut utiliser dans une condition à tester
(test, boucle "tant que").
2.11. Procédures. Vous n'avez sans doutes pas envie, à chaque fois que vous voulez tracer un triangle, de
réexpliquer à la tortue comment faire. Vous voudriez lui apprendre une bonne fois pour toutes comment faire,
et qu'elle s'en souvienne ; de manière à pouvoir simplement lui dire "trace une triangle". C'est à cela que
servent les procédures. Nous allons créer une procédure qui trace un triangle. Voici la syntaxe à respecter.
def triangle() :
# Copier ici les instructions qui tracent
# le triangle en les indentant.
A cette occasion nous découvrons comment mettre des commentaires dans un programme, c.a.d. du texte
libre qui ne sera pas pris en compte à l'exécution du programme : tout ce qui est entre # et la n de la ligne
est un commentaire.
Pour l'instant nous n'avons fait que dénir la procédure triangle. La dénition se termine lorsqu'on revient
à une indentation nulle. Pour que la tortue trace eectivement un triangle, il faut lui en donner l'ordre avec
l'instruction triangle() sans indentation. En jargon informatique, on dit qu'on appelle la procédure. Testez-le.
On aimerait être plus précis et pouvoir dire à la tortue : "trace un triangle de 150 pixels de côté". Pour cela,
on va ajouter une argument à notre procédure :
def triangle(longueur_côté) :
# Copier ici les instructions qui tracent
# le triangle, en supprimant l'affectation
# d'une valeur à la variable longueur_côté.
# Et voici l'appel de la procédure qui précise
# la taille souhaitée.
triangle(150)
Testez-le.
Exercice 11. Ecrire un programme qui trace un hexagone comme celui ci-dessous en utilisant notre procédure
"triangle" et une boucle "pour". Avant de faire cet exercice, vériez bien qu'à la n de votre procédure traçant
un triangle, la tortue est revenue à son point de départ et regarde dans la même direction qu'avant
l'appel de la procédure. Cela facilitera votre réexion pour cet exercice.
6
Initiation Python
2.12. Fonctions. Une fonction est une procédure qui "retourne" (jargon informatique) une valeur. Dès
qu'une procédure rencontre une instruction "return" suivie d'une expression, elle évalue l'expression et s'interromp immédiatement en "retournant" le résultat de cette évaluation. Vous comprendrez mieux sur cet
exemple. La fonction plus_grand retourne le plus grand de ses arguments. Quel nombre ache ce programme ?
def plus_grand(a,b) :
if a<b :
return b
else :
return a
print(plus_grand(3,7)-plus_grand(9,2))
Exercice 12. Au début de votre programme qui dessinait une spirale, dénissez une fonction
dist, sans
arguments, qui retourne la distance en pixels de la tortue au centre de l'écran (point de coordonnées (0,0)).
Vous aurez besoin de la fonction sqrt qui se trouve dans le module math qu'il vous faudra importer avec
"from math import *". Lorsque la tortue a ni de tracer sa spirale, achez sa distance au centre de l'écran
en "appelant" la fonction que vous avez dénie.
Téléchargement