TP de M1207 - Programmation Python
IUT1 R&T - 1`ere ann´ee - 2016/2017
Liens utiles
Documentation Python : https://docs.python.org/2.7/
TP 1 Prise en main de PyScripter
1.1 Introduction et configuration de PyScripter
Pour les TP de programmation en Python, nous utiliserons l’IDE 1PyScripter, install´e sur votre poste en
Windows. Lancez PyScripter par le Menu Demarrer > Tous les programmes > Programmation Python (cli-
quez sur ebloquer si le pare-feu tente de bloquer des fonctionnalit´es). Configurez ensuite PyScripter pour un
travail ais´e comme indiqu´e ci-dessous.
Interface utilisateur
IChoix de la langue : dans le menu View > Language, configurez la langue de l’interface utilisateur dans
votre langue pr´ef´er´ee (id´ealement en fran¸cais).
IChoix de la police : dans le menu Outils > Options > Options de l’´editeur, puis dans la section
Police de l’´editeur, s´electionnez une police adapt´ee `a l’´ecriture de code (police Deja Vu par exemple).
IChoix des num´eros de ligne : dans le menu Outils > Options > Options de l’´editeur, puis dans la
section Bordure,cochezAfficher les num´eros de ligne.
Environnement de d´eveloppement Ouvrir le menu Outils > Options > Options de l’IDE.
ICompl´etion : dans la section Code Completion, d´ecochez le champ Complete with word-break characters,
puis d´ecochez Auto-complete with one entry. Enfin, ajoutez aux attributs du champ Special package
les biblioth`eques suppl´ementaires que vous souhaitez parcourir pour la compl´etion : dans ce module, on
utilisera notamment math et turtle.
IErreurs : dans la section Console Python,d´ecochezAller `a l’erreur sur les exceptions.
IEncodage : modifiez le champ Encodage de fichier par d´efaut pour les nouv... pour que soit
s´electionn´e sf UTF8 ; ce choix assurera un encodage en UTF-8 de vos scripts python.
Mod`eles pour les nouveaux modules
IMod`ele de fichier : dans le menu Fichier > Nouveau > Nouveau Fichier... > G´erer les mod`eles
de fichiers... ´editez le mod`ele de fichier appel´e Script Python en le s´electionnant dans la liste
d´eroulante. Remplacez ensuite son nom dans le champ Nom par ”Script PythonIUT ”. Parcourir le code
python qui s’ache dans le champ Mod`ele pour remplacer le code python de gauche par celui de droite :
1def main():
2pass
3
4if __name__ == __main__:
5main()
)1#!/usr/bin/env python
2#-*-coding:UTF-8-*-
Cette manipulation permettra une meilleure prise en charge des accents sur di´erentes plate-formes.
Sauvegardez ce nouveau mod`ele en cliquant sur Ajouter.
1. Integrated Development Environment (environnement de d´eveloppement)
1
TP 1 Prise en main de PyScripter 2
IChoix du mod`ele par d´efaut : dans le menu Outils > Options > Options de l’IDE, puis dans la
section Interface IDE, remplacez le champ Mod`ele de fichier pour les nouveaux scripts... par
Script PythonIUT ”.
La configuration de PyScripter est termin´ee. En cas de besoin, vous pouvez restaurer la configuration par d´efaut
des volets de PyScripter par Menu Affichage > Mise en page > D´efaut.
1.2 Prise en main de PyScripter
PyScripter pr´esente une interface tr`es compl`ete d´ecrite ci-dessous :
Ex´ecution du programme Ex´ecution avec le d´ebogueur
Volet explorateur
de fichiers, pou-
vant ˆetre bascul´e
avec un explorateur
de projet ou de
code. Le masquage
automatique (Auto
Hide) est accessible
par le bouton en
haut `a droite de
cette zone.
Volet console et
interpr´eteur ;
les autres onglets
permettent l’acc`es
aux outils de
d´eveloppement :
pile d’appels,
visualisation et
surveillance de
variables, points
d’arrˆets, console
de sortie, message
de l’interpr´eteur et
session interactive.
Volet ´e d i t e u r d e
codes avec navi-
gation via les on-
glets. Les scripts
sont nomm´es par
d´efaut ”module”.
1.2.1 Mode interactif
Python peut ˆetre utilis´e en mode interactif, pour saisir directement les instructions depuis la ligne de commande
(ou console Python), `a l’invitation du prompt >>>). Quelle version de Python indique cette console ?
´
Evaluation d’expressions Utilisez le mode interactif pour ´evaluer les expressions suivantes et rappelez quelle
est l’op´eration r´ealis´ee ou le r´esultat produit en pr´ecisant le cas ´ech´eant le type du r´esultat :
Expression R´esultat
20+80
"20"+"80"
print "Chaine accentu´e e avec erreurs `a affichage"
print u"Chaine accentu´e e sans erreur gr^a ce `a 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’achage (sur console ou dans une pop-up) des caract`eres accentu´es de la table
ASCII est d´elicat. Ce probl`eme est r´esolu en sp´ecifiant que la chaine de caract`eres est encoee en unicode en
lui ajoutant le pr´efixe u. Par exemple : valeur = input(u"Valeur `a saisir :").
TP 1 Prise en main de PyScripter 3
Achage de variables Toujours dans l’interpr´eteur, ´ecrire les commandes (2 commandes pour chaque item)
qui :
1. aecte `a une variable ABC la valeur 123 puis ache ABC `a l’´ecran avec print.
2. aecte `a une variable aBc la valeur 456 puis ache aBc avec print.
3. aecte `a une variable AbC la somme de ABC et aBc puis ache le r´esultat `a l’´ecran.
Pour finir, achez le contenu des trois variables ABC,aBc et AbC, en une seule ligne avec un print. Python est-il
sensible `a la casse ?
1.2.2 Scripts Python
Le traditionnel helloWorld.py
ICr´eez votre futur r´epertoire de travail Z:\Prog\TP1.
ICr´eez un nouveau script python en cliquant sur Fichier > Nouveau > Nouveau Fichier puis en choi-
sissant le mod`ele ”Script Python IUT ” (cr´e pendant l’´etape de configuration).
IEnregistrez le fichier dans votre r´epertoire de travail sous le nom helloWorld.py.
ITapez le code suivant incluant des commentaires qui commencent par #:
1#LetraditionnelscripthelloWorld
2print "Hello World!" #Afficheunechainedecaracteres
Ex´ecution dans l’IDE PyScripter Ex´ecutez le script en cliquant sur le triangle vert (ou de mani`ere ´equivalente
via le raccourci ctrl +F9 ) et observez le r´esultat dans la console python.
Ex´ecution d’un script Python en ligne de commande Le script peut aussi ˆetre ex´ecut´e dans une console
Windows, en ligne de commande. Pour ce faire :
Iouvrir une invite de commande Windows (cmd)
Iplacez vous dans votre volume de travail (`a l’aide de la commande Z:)
Iet d´eplacez vous dans votre r´epertoire de travail (`a l’aide de la commande cd Prog\TP1\).
Le contenu de votre r´epertoire peut ˆetre list´e avec dir. Ex´ecutez enfin le script `a l’aide de la commande : python
helloWorld.py. V´erifiez que le r´esultat est le mˆeme qu’avec l’IDE PyScripter.
Le debugger ou la bou´ee de sauvetage dans nombre de situations Dans le script helloWorld.py,`alasuite
de l’achage du message ”Hello World ” ajouter les aectations suivantes ; on pourra se servir du m´ecanisme de
compl´etion (que vous avez configur´e pr´ec´edemment) qui propose au d´eveloppeur d’acc´el´erer la r´edaction de son
script en reconnaissant dans la frappe les mots cl´es du langage ou des noms de variables pr´ec´edemment utilis´es.
1var1 = 1
2var2 = 2
3var3 = "ABC"
4var1 = var3 + var2
5var2 = var3 + var1
Explorateur de code ´
Editez l’explorateur de code (volet de gauche). Il dresse un inventaire des ´el´ements
utilis´es.
Point d’arrˆet Placez le curseur sur la ligne comprenant l’instruction qui ache ”Hello World”etpressezla
touche F5 . Un point rouge apparait `a gauche du code pour signifier un point d’arrˆet. Ceci peut aussi
ˆetre fait aussi par le menu Ex´ecuter > Attacher en point d’arr^et ou en cliquant dans la zone des
points rouges.
Ex´ecution avec le debugger Le debugger permet une ex´ecution du script pas `a pas (ou plus pr´ecis´ement ligne
ex´ecut´ee `a ligne ex´ecut´ee). Lancez ce mode d’ex´ecution : 1) soit en appuyant sur le rond rouge 2) soit
via le raccourci *+F9 3) soit avec le menu Ex´ecuter > D´ebogueur. Le d´eroulement du script peut
alors ˆetre trac´e : la ligne candidate `a l’ex´ecution (c’est `a dire qui va ˆetre ex´ecut´ee) est en surbrillance.
Suivi de variables L’´evolution des variables est visible dans l’onglet variables du volet du bas ; remarquez
qu’il contient un tr`es grand nombre de variables propres `a l’environnement Python. On peut aussi cr´eer sa
propre liste de variables `a surveiller (voire mˆeme d’expressions) : s´electionnez 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 `a surveiller.
Faites cette manipulation pour ajouter la variable var1 et var2 `a la liste des variables `a supprimer.
TP 1 Prise en main de PyScripter 4
Ex´ecution pas `a pas Observer pour ce script l’´evolution des variables pr´esentes en m´emoire (d´eclaration,
valeur, ...) en avan¸cant `a chaque fois d’une ligne, par un appui sur la touche F7 .
A quel moment le d´ebogueur indique-t-il une erreur dans le code ? Expliquez cette erreur, puis corrigez-la
en rempla¸cant var2 par str(var2) (le transtypage sera revu au TP suivant).
Que valent var1 et var2 `a l a fi n d u s c r i p t ?
Arrˆet du debugger On sort du mode d´ebogueur en appuyant sur le carr´e rouge ou par ctrl +Alt +F9 .
1.2.3 Premi`eres impl´ementations
Programme note.py :Cr´eez un script nomm´e note.py.Cescriptaecte `a une variable note une valeur
saisie par l’utilisateur (`a l’aide de la commande input) puis ache `a l’aide d’une structure alternative :
”note valid´ee” si cette note est sup´erieure ou ´egale `a 10,
”`a rattraper” si cette note est entre 8 (inclus) et 10,
”recal´e” si cette note est inf´erieure `a 8.
Rappel : Les instructions d’une structure alternative sont d´elimit´ees par l’indentation r´ealis´ee par une tabu-
lation ! Un bloc d’instructions peut aussi ˆetre indent´e par le menu ´
Edition > Code Source ou les raccourcis
ctrl +*+Iou ctrl +*+U.
Programme date.py :Cr´eez un autre script nomm´e date.py. Ce script demande `a l’utilisateur une date
sous la forme d’un jour (entier de 1 `a 31), d’un mois (entier de 1 `a 12) et d’une ann´ee (entier) `a l’aide de la commande
input.Cescript:
ache le message ”date non valide” si la date entr´ee n’est pas valide (cf. exercice du TD2 pour connaitre
les conditions de validit´e d’une date) ou si la date est ant´erieure au 1er janvier 1583 (limite du calendrier
Gr´egorien). Utiliser des op´erateurs bool´eens not,and,or et traduisez l’expression ”op1 divisible par op2” par
not(op1 % op2)
mais, si la date est valide, ache le jour de la semaine qui lui correspond. Pour cela utilisez l’extrait de code :
1c=(14-mois)/12
2a=annee-c
3m=mois+12c-2
4j=(jour+a+a/4-a/100+a/400+31*m/12)%7
La valeur de jcorrespond au jour de la semaine en suivant la correspondance : 0!dimanche,1!lundi,
2!mardi, etc....
Impl´ementez 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`eres. Une chaine format´ee est constitu´ee :
1. d’une chaine comportant des caract`eres ainsi que des directives de formatage commen¸cant par %.Cette
chaine est dite chaˆıne de formatage.
2. puis du caract`ere %
3. puis des valeurs ou des variables associ´ees aux directives par ordre d’apparition dans la chaine de for-
matage. Dans le cas de multiples variables, celles-ci sont s´epar´ees par des virgules et encadr´ees par des
parenth`eses.
Exemples :
>>>foo = "bar"
>>>number = 12.34
>>>"%f %s" %(number,foo)
12.340000 bar
On voit ici l’achage d’un flottant (%f) contenu dans la variable number et d’une chaine (%s) contenue dans la
variable foo.
Testez dans un interpr´eteur (onglet ”Console Python” du volet du bas de PyScripter, par ex.), les instructions
suivantes et observez le r´esultat en fonction des directives de formatage :
TP 1 Prise en main de PyScripter 5
>>>print "%d" % 1.23
>>> print "%5d " %123
>>> print "%05d " %123
>>> print "%x" %255
>>> print "%10.2f " % 45.6789
On trouvera une aide succincte `a propos de ces formatages et de print sur http://www.jchr.be/python/
manuel.htm#print ainsi qu’une documentation compl`ete sur https://docs.python.org/2/library/stdtypes.
html#string-formatting-operations.
1.3 Allez plus loin
1.3.1 Utilisation de PyScripter en version portable sur votre machine personnelle.
PyScripter existe aussi en version portable c’est-`a-dire utilisable sans installation dans un syst`eme. PyScripter
peut ˆetre alors copi´e et gardera toutes ses fonctionnalit´es (r´eglages, scripts ouverts).
Pour travailler dans un environnement Windows 32-bits, t´el´echargez 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´ecutable. Lors de l’installation, choisissez votre r´epertoire de destination et d´ecochez la section
Modules (ne laissez que Core editors coch´e). L’installeur place tous les ´el´ements utiles dans
<votre repertoire de destination>\Portable Python 2.7.3.1. L’ex´ecutable PortablePython 2.7.3.1.exe
peut alors ˆetre supprim´e.
L’installation de PortablePython fournit deux outils :
Iun interpr´eteur en ligne de commande : Python-Portable.exe
Il’IDE PyScripter : PyScripter-Portable.exe
Cette installation pourra ˆetre transport´ee `a l’aide d’une cl´e USB. Libre `a vous de continuer `a travailler sur un
autre poste ex´ecutant Windows. Libre `a vous aussi de tester vos scripts sur une autre plate-forme o`u Python 2.7
est install´e (Linux, OsX, etc). La portabilit´e est assur´ee pour le langage ainsi qu’un grand nombre de modules
que nous utiliserons.
1.3.2 Python sous Linux (optionnel)
Interpeteur Python Loguez-vous sous Linux. Ouvrez un terminal et lancez l’interpr´eteur Python par la
commande python. Le prompt >>> pr´ecise que l’environnement est celui du langage Python. Quelle est la
version du langage ?
Testez de nouveau quelques-unes des expressions demand´ees au 1.2.1. Sortez de l’interpr´eteur Python `a l’aide
de la commande exit() ou de la combinaison de touches ctrl +D. O`u est situ´e l’interpr´eteur Python dans
l’arborescence du syst`eme Linux ?
Scripts en linux Cr´eez un fichier bonjour.py contenant l’instruction python qui ache `a l’´ecran "bonjour".
Ex´ecutez-le dans un terminal en tapant : python bonjour.py. V´erifiez que vous obtenez le r´esultat attendu.
Pour l’instant, le script bonjour.py ne peut pas ˆetre interpr´et´e de mani`ere autonome (c’est `a dire sans ˆetre
l’argument de la commande python). Pour l’inegrer au syst`eme, `a l’´egal d’un script shell, il faut indiquer au
syst`eme o`u il trouvera l’interpr´eteur Python. Cette indication (comme en shell) est r´ealis´ee directement dans le
script, `a l’aide d’une directive d´ebutant par un shebang (caract`eres #!) qui doit ˆetre le 1er ´el´ement lu dans le
script. La directive est :
le shebang suivi de la localisation dans l’arborescence de l’interpr´eteur Python que l’on souhaite invoquer
(mais qui malheureusement peut changer d’une installation `a une autre),
ou mieux, car assurant la portabilit´e du code entre installations, #!/usr/bin/env python.
L’argument ”python” peut aussi permettre de pr´eciser la version du langage souhait´ee. En eet, Python ´evolue
toujours et le passage `a la version 3 (en 2008) a apport´e son lot d’incompatibilit´es avec les versions 2.x toujours
en d´eveloppement (2.7 en 2010). Par exemple, on pourra pr´eciser `a la suite du shebang /usr/bin/env python2.7.
Ajoutez la directive #!/usr/bin/env python en premi`ere ligne de votre fichier bonjour.py, ajoutez le droit
d’ex´ecution `a votre script et testez son ex´ecution, cette fois en tapant ./bonjour.py.
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !