D´eroulement T.P. 2 : Premiers pas avec python et I.E.P.
1) Savoir faire attendu : `a partir du bureau Debian, savoir lancer 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.
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.
A cˆot´e le File Browser. Savoir faire attendu : 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.
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.
Savoir faire attendu : savoir choisir la version de python dans le shell et utiliser deux shell.
Que donne float(5/2) en python 2 ? Pourquoi ?
Comment obtenir vraiment 5/2 comme float alors ?
Nous utiliserons exclusivement Python3, mais m´efiez-vous que vos machines risquent parfois de
d´emarrer avec un shell Python 2.
4) Importation de module, le module math
Importer le module math des deux fa¸cons vues en cours, dans deux shell diff´erents.
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 : la com-
mande pow.
Comparer help(pow) sans charger le module math et en le chargeant : on perd une fonction-
nalit´e ineressante !
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) Les 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 so us la condition 1
# sont e x ´ec u t´ees si condition1 est vr aie .
elif conditi o n 2 : # le e lif est pour else if .
instruction
else :
instruction
1
T.P. 2 : Exercice sur les ann´ees bissextiles
version plus d´etailee de l’´enonc´e
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 : si on consid`ere le code
reponse=input(’Entrez un nombre’)
l’ex´ecution de ce code provoque, comme print, l’affichage du message Entrez un nombre
mais en plus le curseur reste dans le shell en attente d’une saisie au clavier. Vous rentrez un
nombre ou autre chose au clavier, et ce qui vous rentrez sera stock´e dans la variable reponse.
Mettons qu’on rentre 17, si on regarde ce que contient reponse :
>>> reponse
’17’
on s’aper¸coit que reponse n’est pas une variable integer mais comme elle est entour´ee de
quotes c’est une variable string i.e. chaˆıne de caract`eres.
Le probl`eme pratique pour nous est que si par exemple on veut d´efinir un test bool´een du
type :
reponse>20
que se passe-t-il ? Pourquoi ? Comment rem´edier `a ce probl`eme ?
La d´efinition d’une ann´ee bissextile :
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 un programme qui demande de rentrer une ann´ee et r´epond 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 ( " En trez l ’ ann´ee de votre choix " ))
if ( annee %4==0) and (( annee % 100 !=0 ) or ( annee %400==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 !