T.P. 1 : Premiers pas avec python et I.E.P.
1) Pour d´emarrer : `a partir du bureau, savoir lancer un Terminal.
Dans le Terminal, taper iep & pour lancer IEP. A quoi sert le &?
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 ?
Une moralit´e : comme la commande // existe aussi en python 2 et fait la mˆeme chose qu’en
python 3, il faut toujours l’utiliser mˆeme en python 2 ainsi nos scripts seront compatibles sur
les deux versions, pour ce qui est de la manipulation des entiers.
Pour la manipulation des r´eels, en revanche, il faudra ˆetre prudent en 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 de tout le module n’est pas neutre : la commande
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 instruction s indent´ees so us la condition 1
# sont ex´ecut´ee s si c o n d i t i o n 1 est vraie .
elif conditi o n 2 : # le elif est tr`es puissant , il ´evite le if en ca scade !
instruction
else instruction
1
Exercice sur les ann´ees bissextiles donn´e dans le cours.
Rappel du cours sur la commande input : sa syntaxe, ce qu’elle fabrique.
La vraie 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.
6) Les premi`eres boucles
6.1. Boucles conditionnelles : while Supposons qu’on veuille chercher pour tout nombre N,
le plus petit entier ntel que 2nN. On peut utiliser le programme qui suit :
n =0 # i n i t i alisat i o n n ´e c e s s a i r e
while 2** n <= N: # bien noter le : `a la fin de la lig ne et l in d e n t a ti o n apr `e s .
n =n +1 # it ´er a t i o n
Dans ce script :
la variable nsert de compteur, qui vaut 0avant le d´ebut de la boucle.
l’instruction d’affectation n=n+1 dit qu’on incr´emente i.e. augmente de nde 1 `a chaque ´etape,
tant que (le while) la condition 2**n<=N est r´ealis´ee.
A l’arrˆet de la boucle : notons nfle plus grand entier tel que 2nfN. Quand le compteur n
arrive `a la valeur nf, la condition sur laquelle porte le while est encore r´ealis´ee, donc le
programme ex´ecute encore la commande n=n+1. A ce moment-l`a, on a n=nf+1. Quand la
variable nest de nouveau test´ee pour la condition 2**n<=N , la condition n’est plus v´erifi´ee :
on sort de la boucle.
La valeur de nobtenue est bien nf+1, c’est-`a-dire le plus petit entier ntel que 2n>N.
Exercice d’application :
Ecrire un test pour savoir si un nombre est premier `a l’aide d’une boucle while.
Ecrire un algorithme qui renvoie le reste de la division euclidienne de deux nombres aet b
sans utiliser la commande % de python, mais seulement des additions et des diff´erences.
6.2. Boucles for
Si l’on veut afficher tous les nombres de 1 `a 10
for i in range(1,11) : # eh oui en python il faut un range jusqu’`a 11 pour s’arr^eter `a 10
print(i)
# bien noter le : `a la fin de la ligne et l’indentation `a la ligne d’apr`es.
Exercice d’application :
Calculer une somme par exemple
10
i=1
i2, en python, `a l’aide d’une boucle for.
Regarder l’aide de la commande sum pour faire la mˆeme chose avec la commande sum de
python.
Pour tous les nombres de 1 `a 100 afficher s’il sont premiers `a l’aide de votre algorithme du 6.1.
2
1 / 2 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 !