Prise en main de PyScripter

publicité
TP de M1207 - Programmation Python
IUT1 R&T - 1ère année - 2016/2017
Liens utiles
Documentation Python : https://docs.python.org/2.7/
TP 1
1.1
Prise en main de PyScripter
Introduction et configuration de PyScripter
Pour les TP de programmation en Python, nous utiliserons l’IDE 1 PyScripter, installé sur votre poste en
Windows. Lancez PyScripter par le Menu Demarrer > Tous les programmes > Programmation Python (cliquez sur Débloquer si le pare-feu tente de bloquer des fonctionnalités). Configurez ensuite PyScripter pour un
travail aisé comme indiqué ci-dessous.
Interface utilisateur
I Choix de la langue : dans le menu View > Language, configurez la langue de l’interface utilisateur dans
votre langue préférée (idéalement en français).
I Choix de la police : dans le menu Outils > Options > Options de l’éditeur, puis dans la section
Police de l’éditeur, sélectionnez une police adaptée à l’écriture de code (police Deja Vu par exemple).
I Choix des numéros de ligne : dans le menu Outils > Options > Options de l’éditeur, puis dans la
section Bordure, cochez Afficher les numéros de ligne.
Environnement de développement Ouvrir le menu Outils > Options > Options de l’IDE.
I Complétion : dans la section Code Completion, décochez le champ Complete with word-break characters,
puis décochez Auto-complete with one entry. Enfin, ajoutez aux attributs du champ Special package
les bibliothèques supplémentaires que vous souhaitez parcourir pour la complétion : dans ce module, on
utilisera notamment math et turtle.
I Erreurs : dans la section Console Python, décochez Aller à l’erreur sur les exceptions.
I Encodage : modifiez le champ Encodage de fichier par défaut pour les nouv... pour que soit
sélectionné sf UTF8 ; ce choix assurera un encodage en UTF-8 de vos scripts python.
Modèles pour les nouveaux modules
I Modèle de fichier : dans le menu Fichier > Nouveau > Nouveau Fichier... > Gérer les modèles
de fichiers... éditez le modèle de fichier appelé Script Python en le sélectionnant dans la liste
déroulante. Remplacez ensuite son nom dans le champ Nom par ”Script PythonIUT ”. Parcourir le code
python qui s’affiche dans le champ Modèle pour remplacer le code python de gauche par celui de droite :
1
2
def main () :
pass
)
3
4
5
if __name__ == ’ __main__ ’:
main ()
1
2
# !/ usr / bin / env python
# -* - coding : UTF -8 -* -
Cette manipulation permettra une meilleure prise en charge des accents sur di↵érentes plate-formes.
Sauvegardez ce nouveau modèle en cliquant sur Ajouter.
1. Integrated Development Environment (environnement de développement)
1
TP 1 Prise en main de PyScripter
2
I Choix du modèle par défaut : dans le menu Outils > Options > Options de l’IDE, puis dans la
section Interface IDE, remplacez le champ Modèle de fichier pour les nouveaux scripts... par
”Script PythonIUT ”.
La configuration de PyScripter est terminée. En cas de besoin, vous pouvez restaurer la configuration par défaut
des volets de PyScripter par Menu Affichage > Mise en page > Défaut.
1.2
Prise en main de PyScripter
PyScripter présente une interface très complète décrite ci-dessous :
Exécution avec le débogueur
Exécution du programme
Volet explorateur
de fichiers, pouvant être basculé
avec un explorateur
de projet ou de
code. Le masquage
automatique (Auto
Hide) est accessible
par le bouton en
haut à droite de
cette zone.
1.2.1
Volet éditeur de
codes avec navigation via les onglets. Les scripts
sont nommés par
défaut ”module”.
Volet console et
interpréteur ;
les autres onglets
permettent l’accès
aux
outils
de
développement
:
pile
d’appels,
visualisation
et
surveillance
de
variables,
points
d’arrêts,
console
de sortie, message
de l’interpréteur et
session interactive.
Mode interactif
Python peut être utilisé en mode interactif, pour saisir directement les instructions depuis la ligne de commande
(ou console Python), à l’invitation du prompt >>>). Quelle version de Python indique cette console ?
Évaluation d’expressions Utilisez le mode interactif pour évaluer les expressions suivantes et rappelez quelle
est l’opération réalisée ou le résultat produit en précisant le cas échéant le type du résultat :
Expression
Résultat
20+80
"20"+"80"
print "Chaine accentuée avec erreurs à affichage"
print u"Chaine accentuée sans erreur gr^
ace à unicode"
res = 5.5**2
print res
print 1+2, "est le resultat"
print "bonjour"*3
13/3
13/3.0
res > 2
annee = 2015
(annee%4 == 0)and (annee%100 !=0)
not( annee%4 == 0 )and (annee%100 == 0)
Remarque : En Python 2.7, l’affichage (sur console ou dans une pop-up) des caractères accentués de la table
ASCII est délicat. Ce problème est résolu en spécifiant que la chaine de caractères est encodée en unicode en
lui ajoutant le préfixe u. Par exemple : valeur = input(u"Valeur à saisir :").
TP 1 Prise en main de PyScripter
Affichage de variables
qui :
3
Toujours dans l’interpréteur, écrire les commandes (2 commandes pour chaque item)
1. a↵ecte à une variable ABC la valeur 123 puis affiche ABC à l’écran avec print.
2. a↵ecte à une variable aBc la valeur 456 puis affiche aBc avec print.
3. a↵ecte à une variable AbC la somme de ABC et aBc puis affiche le résultat à l’écran.
Pour finir, affichez le contenu des trois variables ABC, aBc et AbC, en une seule ligne avec un print. Python est-il
sensible à la casse ?
1.2.2
Scripts Python
Le traditionnel helloWorld.py
I Créez votre futur répertoire de travail Z:\Prog\TP1.
I Créez un nouveau script python en cliquant sur Fichier > Nouveau > Nouveau Fichier puis en choisissant le modèle ”Script Python IUT ” (créé pendant l’étape de configuration).
I Enregistrez le fichier dans votre répertoire de travail sous le nom helloWorld.py.
I Tapez le code suivant incluant des commentaires qui commencent par # :
1
2
# Le traditionnel script helloWorld
print " Hello World ! " # Affiche une chaine de caracteres
Exécution dans l’IDE PyScripter Exécutez le script en cliquant sur le triangle vert (ou de manière équivalente
via le raccourci ctrl + F9 ) et observez le résultat dans la console python.
Exécution d’un script Python en ligne de commande Le script peut aussi être exécuté dans une console
Windows, en ligne de commande. Pour ce faire :
I ouvrir une invite de commande Windows (cmd)
I placez vous dans votre volume de travail (à l’aide de la commande Z:)
I et déplacez vous dans votre répertoire de travail (à l’aide de la commande cd Prog\TP1\).
Le contenu de votre répertoire peut être listé avec dir. Exécutez enfin le script à l’aide de la commande : python
helloWorld.py. Vérifiez que le résultat est le même qu’avec l’IDE PyScripter.
Le debugger ou la bouée de sauvetage dans nombre de situations Dans le script helloWorld.py, à la suite
de l’affichage du message ”Hello World ” ajouter les a↵ectations suivantes ; on pourra se servir du mécanisme de
complétion (que vous avez configuré précédemment) qui propose au développeur d’accélérer la rédaction de son
script en reconnaissant dans la frappe les mots clés du langage ou des noms de variables précédemment utilisés.
1
2
3
4
5
var1
var2
var3
var1
var2
=
=
=
=
=
1
2
" ABC "
var3 + var2
var3 + var1
Explorateur de code Éditez l’explorateur de code (volet de gauche). Il dresse un inventaire des éléments
utilisés.
Point d’arrêt Placez le curseur sur la ligne comprenant l’instruction qui affiche ”Hello World ” et pressez la
touche F5 . Un point rouge apparait à gauche du code pour signifier un point d’arrêt. Ceci peut aussi
être fait aussi par le menu Exécuter > Attacher en point d’arr^
et ou en cliquant dans la zone des
points rouges.
Exécution avec le debugger Le debugger permet une exécution du script pas à pas (ou plus précisément ligne
exécutée à ligne exécutée). Lancez ce mode d’exécution : 1) soit en appuyant sur le rond rouge 2) soit
via le raccourci * + F9 3) soit avec le menu Exécuter > Débogueur. Le déroulement du script peut
alors être tracé : la ligne candidate à l’exécution (c’est à dire qui va être exécutée) est en surbrillance.
Suivi de variables L’évolution des variables est visible dans l’onglet variables du volet du bas ; remarquez
qu’il contient un très grand nombre de variables propres à l’environnement Python. On peut aussi créer sa
propre liste de variables à surveiller (voire même d’expressions) : sélectionnez l’onglet Surveillance, puis
faites ensuite un clic droit dans la zone de Surveillance ; un menu contextuel apparaı̂t dans lequel vous
devez choisir Ajouter un point de surveillance ; tapez finalement le nom de la variable à surveiller.
Faites cette manipulation pour ajouter la variable var1 et var2 à la liste des variables à supprimer.
TP 1 Prise en main de PyScripter
4
Exécution pas à pas Observer pour ce script l’évolution des variables présentes en mémoire (déclaration,
valeur, ...) en avançant à chaque fois d’une ligne, par un appui sur la touche F7 .
A quel moment le débogueur indique-t-il une erreur dans le code ? Expliquez cette erreur, puis corrigez-la
en remplaçant var2 par str(var2) (le transtypage sera revu au TP suivant).
Que valent var1 et var2 à la fin du script ?
Arrêt du debugger On sort du mode débogueur en appuyant sur le carré rouge ou par ctrl + Alt + F9 .
1.2.3
Premières implémentations
Programme note.py : Créez un script nommé note.py. Ce script a↵ecte à une variable note une valeur
saisie par l’utilisateur (à l’aide de la commande input) puis affiche à l’aide d’une structure alternative :
— ”note validée” si cette note est supérieure ou égale à 10,
— ”à rattraper” si cette note est entre 8 (inclus) et 10,
— ”recalé” si cette note est inférieure à 8.
Rappel : Les instructions d’une structure alternative sont délimitées par l’indentation réalisée par une tabulation ! Un bloc d’instructions peut aussi être indenté par le menu Édition > Code Source ou les raccourcis
ctrl + * + I
ou ctrl + * + U .
Programme date.py : Créez un autre script nommé date.py. Ce script demande à l’utilisateur une date
sous la forme d’un jour (entier de 1 à 31), d’un mois (entier de 1 à 12) et d’une année (entier) à l’aide de la commande
input. Ce script :
• affiche le message ”date non valide” si la date entrée n’est pas valide (cf. exercice du TD2 pour connaitre
les conditions de validité d’une date) ou si la date est antérieure au 1er janvier 1583 (limite du calendrier
Grégorien). Utiliser des opérateurs booléens not, and, or et traduisez l’expression ”op1 divisible par op2” par
not(op1 % op2)
• mais, si la date est valide, affiche le jour de la semaine qui lui correspond. Pour cela utilisez l’extrait de code :
1
2
3
4
c
a
m
j
=
=
=
=
(14 - mois ) /12
annee -c
mois + 12 c -2
( jour + a + a /4 - a /100 + a /400 + 31* m /12) % 7
La valeur de j correspond au jour de la semaine en suivant la correspondance : 0 ! dimanche, 1 ! lundi,
2 ! mardi, etc....
Implémentez et testez ce script au travers de l’IDE.
1.2.4
Formatage des chaines
Python supporte le formatage de valeurs en chaines de caractères. Une chaine formatée est constituée :
1. d’une chaine comportant des caractères ainsi que des directives de formatage commençant par %. Cette
chaine est dite chaı̂ne de formatage.
2. puis du caractère %
3. puis des valeurs ou des variables associées aux directives par ordre d’apparition dans la chaine de formatage. Dans le cas de multiples variables, celles-ci sont séparées par des virgules et encadrées par des
parenthèses.
Exemples :
>>> foo = " bar "
>>> number = 12.34
>>>" % f % s " % ( number , foo )
’ 12.340000 bar ’
On voit ici l’affichage d’un flottant (%f) contenu dans la variable number et d’une chaine (%s) contenue dans la
variable foo.
Testez dans un interpréteur (onglet ”Console Python” du volet du bas de PyScripter, par ex.), les instructions
suivantes et observez le résultat en fonction des directives de formatage :
TP 1 Prise en main de PyScripter
5
>>> print " % d " % 1.23
>>> print " %5 d " % 123
>>> print " %05 d " % 123
>>> print " % x " % 255
>>> print " %10.2 f " % 45.6789
On trouvera une aide succincte à propos de ces formatages et de print sur http://www.jchr.be/python/
manuel.htm#print ainsi qu’une documentation complète sur https://docs.python.org/2/library/stdtypes.
html#string-formatting-operations.
1.3
1.3.1
Allez plus loin
Utilisation de PyScripter en version portable sur votre machine personnelle.
PyScripter existe aussi en version portable c’est-à-dire utilisable sans installation dans un système. PyScripter
peut être alors copié et gardera toutes ses fonctionnalités (réglages, scripts ouverts).
Pour travailler dans un environnement Windows 32-bits, téléchargez le fichier PortablePython 2.7.3.1.exe
(ou PortablePython 2.7.3.1.7z) disponibles sur ftp://ftp.gtrgrenoble.fr/TpInfo/M1207-Prog1/Outils
puis lancez l’exécutable. Lors de l’installation, choisissez votre répertoire de destination et décochez la section
Modules (ne laissez que Core editors coché). L’installeur place tous les éléments utiles dans
<votre repertoire de destination>\Portable Python 2.7.3.1. L’exécutable PortablePython 2.7.3.1.exe
peut alors être supprimé.
L’installation de PortablePython fournit deux outils :
I un interpréteur en ligne de commande : Python-Portable.exe
I l’IDE PyScripter : PyScripter-Portable.exe
Cette installation pourra être transportée à l’aide d’une clé USB. Libre à vous de continuer à travailler sur un
autre poste exécutant Windows. Libre à vous aussi de tester vos scripts sur une autre plate-forme où Python 2.7
est installé (Linux, OsX, etc). La portabilité est assurée pour le langage ainsi qu’un grand nombre de modules
que nous utiliserons.
1.3.2
Python sous Linux (optionnel)
Interpréteur Python Loguez-vous sous Linux. Ouvrez un terminal et lancez l’interpréteur Python par la
commande python. Le prompt >>> précise que l’environnement est celui du langage Python. Quelle est la
version du langage ?
Testez de nouveau quelques-unes des expressions demandées au 1.2.1. Sortez de l’interpréteur Python à l’aide
de la commande exit() ou de la combinaison de touches ctrl + D . Où est situé l’interpréteur Python dans
l’arborescence du système Linux ?
Scripts en linux Créez un fichier bonjour.py contenant l’instruction python qui affiche à l’écran "bonjour".
Exécutez-le dans un terminal en tapant : python bonjour.py. Vérifiez que vous obtenez le résultat attendu.
Pour l’instant, le script bonjour.py ne peut pas être interprété de manière autonome (c’est à dire sans être
l’argument de la commande python). Pour l’intégrer au système, à l’égal d’un script shell, il faut indiquer au
système où il trouvera l’interpréteur Python. Cette indication (comme en shell) est réalisée directement dans le
script, à l’aide d’une directive débutant par un shebang (caractères #!) qui doit être le 1er élément lu dans le
script. La directive est :
— le shebang suivi de la localisation dans l’arborescence de l’interpréteur Python que l’on souhaite invoquer
(mais qui malheureusement peut changer d’une installation à une autre),
— ou mieux, car assurant la portabilité du code entre installations, #!/usr/bin/env python.
L’argument ”python” peut aussi permettre de préciser la version du langage souhaitée. En e↵et, Python évolue
toujours et le passage à la version 3 (en 2008) a apporté son lot d’incompatibilités avec les versions 2.x toujours
en développement (2.7 en 2010). Par exemple, on pourra préciser à la suite du shebang /usr/bin/env python2.7.
Ajoutez la directive #!/usr/bin/env python en première ligne de votre fichier bonjour.py, ajoutez le droit
d’exécution à votre script et testez son exécution, cette fois en tapant ./bonjour.py.
Téléchargement