D´eroulement T.P. 2 : Premiers pas avec python et I.E.P.
1) Pour lancer I.E.P. : `a partir du bureau Debian ouvrir un Terminal.
Dans le Terminal, taper iep & pour lancer IEP. A quoi sert le &?
IEP signifie Interactive Editor for Python.
2) Pr´esentation des zones de travail de I.E.P.
Le shell est au dessus (si jamais il est de cˆot´e, on peut le bouger en cliquant sur le haut de
la fenˆetre de shell). Il permet de rentrer des instructions en ligne de commande. Essayez de
faire un calcul dans le shell.
En dessous la fenˆetre fichier (si elle n’existe pas Ctrl-N ou menu d´eroulant Fichier). Elle
permet de manipuler un fichier texte, qui contiendra le code qu’on ex´ecutera dans un second
temps. Essayer de taper : print("Hello world") dans la zone de fichier, puis d’ex´ecuter ce
programme.
A cˆot´e le File Browser : modifier le chemin du File Browser pour que le chemin soit celui de
la cl´e USB perso : tous les fichiers sauvegard´es le seront sur la cl´e. Sauvegardez votre premier
fichier et pensez que Ctrl-S est un bon ami.
3) Exp´erimentation en python 2 et python 3
Retour sur le pb. de la division des entiers en python 2 et python 3, ´evoqu´e en cours.
Comment choisir la version de python dans le shell ? Cliquer sur le rectangle marqu´e Python
en haut `a droite, puis Edit shell configuration. Noter qu’ensuite, il faut encore faire new
shell dans le mˆeme menu pour avoir un nouvel shell correspondant `a la configuration choisie.
Que donne float(5/2) en python 2 ? Pourquoi ?
Comment obtenir vraiment 5/2 comme float alors ?
Nous utiliserons exclusivement Python 3, mais m´efiez-vous que vos machines risquent parfois de
d´emarrer avec un shell Python 2. Il y a bien sˆur d’autres diff´erences entre les deux versions, comme
la syntaxe du print...
4) Importation de module, le module math
Importer le module math des deux fa¸cons vues en cours, dans deux shell diff´erents.
Dans quel shell la commande exp(2) va-t-elle permettre de calculer e2? (Appelons-le shell
1) Comment le faire avec l’autre shell ? (Le shell 2).
Que se passe-t-il si vous tapez dans le shell 1 o`u vous avez calcul´e exp(2),exp="Un petit
message d’explication" et que vous r´eessayez de taper exp(2) ?
Faire afficher toutes les commandes du module math.
Essayer l’aide pour comprendre `a quoi servent les fonctions list´ees. Par exemple : help(log1p).
Un exemple qui montre que l’importation avec from ... import n’est pas neutre : dans le
cours, on a dit que les valeurs de vos variables peuvent se faire ´ecraser. Par exemple si vous
tapez e=17 puis que vous faites from math import *, que devient e?
Ici, on va le voir sur une fonction : la commande pow.
Comparer help(pow) sans charger le module math et en le chargeant : on perd une fonction-
nalit´e ineressante !
1
Moralit´e : l’importation de tout un module sous la forme from math import * n’est pas anodine,
elle peut avoir des cons´equences inattendues, comme la modifications de fonctions d´ej`a d´efinies,
ou de variables comme e
5) Introduction `a la commande input
Nous l’utiliserons peu par la suite, elle sera remplac´ee par l’usage de fonctions mais pour
aujourd’hui elle nous permettra de faire notre premier programme. Cette commande input permet
`a la fois d’afficher un message et de recevoir une r´eponse de l’utilisateur : pour cela, on faut stocker
le r´esultat de input dans une variable.
Par exemple, si un programme commence par :
nombre=input(’Entrez un nombre et moi je vais lui ajouter 2’)
# la valeur rentr´ee par l’utilisateur sera stock´ee dans la variable appel´ee ici nombre
comment compl´eter ce programme pour qu’effectivement l’ordinateur retourne le nombre plus
deux ?
Attention, il y a un petit pi`ege, en cas d’erreur.. lisez le message d’erreur...
6) Introduction aux structures conditionnelles : if ... elif .. else
un point sur la syntaxe :
if con d i t i o n 1 : # le : a v aleu r de then
instruction
instruction # to u tes les instructio n s indent´ees sous la c o n d i tion 1
# sont ex´e cut´e es si condition1 est vr aie .
elif conditi o n 2 : # le eli f est pour else if .
instruction
else :
instruction
a) Ecrire un programme qui demande d’entrer un nombre puis qui affiche gagn´e si ce nombre
est ´egal `a 17, pas assez si le nombre est strictement inf´erieur et trop s’il est sup´erieur stricte-
ment.
b) Expliquer le diff´erence de comportement entre les deux programmes suivants :
a=17
if a==17 :
print("ok")
a=0
if a<17:
print("trop petit")
else :
print("trop grand")
a=17
if a==17 :
print("ok")
a=0
elif a<17:
print("trop petit")
else :
print("trop grand")
7) : Exercice sur les ann´ees bissextiles
Les ann´ees bissextiles sont les ann´ees multiples de 4 sauf les ann´ees divisibles par 100 (les ann´ees
s´eculaires) qui ne sont pas divisibles par 400. Ainsi 2000 ´etait bissextile, mais 1900 ne l’´etait pas
et 2100 ne le sera pas non plus.
Faire deux programmes qui demandent de rentrer une ann´ee et r´epondent si elle est bissextile
ou non :
d’abord avec des if ... elif.. else
puis seulement avec des or and en fabriquant alors un bool´een qui r´epond True ou False
comme il se doit.
2
TP 2 : Corrig´e de l’exercice :
On pr´esente deux m´ethodes extrˆemes , il est possible de combiner bien sˆur if else et and,
or
(M1) Avec les if :noter l’int´erˆet de l’ordre dans lequel les conditions apparaissent
annee=int(input(’Entrez une ann´ee’))
if annee%400==0:
print("bissextile")
elif annee%100==0:
print("non bissextile")
#N.B. dans ce cas annee est divisible par 100
# mais PAS par 400 gr^ace au elif.
elif annee%4==0:
print("bissextile")
#dans ce cas annee n’est divisible
# ni par 400 ni par 100 (autrement dit par 100)
# mais est divisible par 4
Si on pr´ef`ere les conditions n´egatives, on va dans l’ordre inverse :
annee=int(input("Entrez l’ann´ee de votre choix"))
if annee%4 !=0:
print("cette ann´ee n’est pas bissextile")
elif annee%100 !=0:
print("cette ann´ee est bissextile")
elif annee%400 !=0:
print("cette ann´ee n’est pas bissextile")
else:
print("cette ann´ee est bissextile")
(M2) Avec les and, or :
annee=int(input("Entrez l’ann´ee de votre choix"))
test=(annee%4==0) and ((annee%100!=0) or (annee%400==0))
print(test)
Pour faire plus humain , mais on ne s’ineressera pas beaucoup `a ces d´etails d’interface
utilisateur dans nos programmes :
annee = int ( input ( " Entrez l ’ ann´ee de votre choix " ))
if ( annee %4==0) and (( annee %1 00! =0) or ( annee %40 0==0)):
print ( " cette ann´ee est bissextile " )
else:
print ( " cette ann´ee n ’ est pas bissextile " )
3
1 / 3 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 !