Lycée Victor Hugo MPSI-PCSI 2015-2016
TP no1 : Prise en main de Python
Introduction
Lors de cette séance nous allons faire connaissance avec le langage Python. La version
utilisée sera Python 3.
Nous n’utiliserons pas directement Python ; nous passerons par un environnement
de développement intégré (en anglais IDE :interactive development environnement)ap-
pelé Pyzo.
Nous découvrirons les types de données les plus élémentaires que nous aurons à ma-
nipuler : nombres entiers, nombres flottants, booléens.
Nous présenterons les opérations simples réalisables sur ces types de données.
Nous aborderons également la notion de variable et le mécanisme de l’affectation.
I Lancement de l’IDE Pyzo
Lancer Pyzo : le professeur vous donnera les instructions pour réaliser cette opération.
Une fenêtre apparaît, contenant diverses sous-fenêtres. La sous-fenêtre « shell » doit
présenter quelques lignes ressemblant à
Python 3.4.1 | Continuum Analytics , Inc .| ( default , May 19 2014 ,
13:02:30) on Windows (64 bits ).
This is the IEP i nter preter with inte grated event loop for PYSIDE
.
Using IPython 2.1.0 -- An enhanced Interactiv e Python .
? -> Introduction and overview of IPython ’s features .
% quickref -> Quick re feren ce .
help -> Python ’s own help system .
object ? -> Details about ’ o bj ec t ’ , use ’ o bj ec t ?? ’ for extra
details.
In [1]:
Dans cette fenêtre, le symbole In [1]: est le prompt (ou invite) de Python 1.
Nous pouvons y saisir des instructions élémentaires du langage Python (s’étendant
éventuellement sur plusieurs lignes) et observer le résultat, qui apparait derrière un indica-
teur Out portant le même numéro :
In [2]: 6*7
Out [2]: 42
1. Quand on utilise Python directement (sans utiliser d’IDE), il s’agira plutôt de >>>.
1
Lycée Victor Hugo MPSI-PCSI 2015-2016
Nous travaillons alors en mode « ligne de commande interactive ». Python se comporte
alors un peu comme une super calculatrice 2.
Dans tous les exemples qui suivent, il faudra taper vous-même ce qui se
trouve après le prompt, puis appuyer sur la touche Entrée . Python répond
alors sur la ligne suivante. La maîtrise d’un langage de programmation passe
essentiellement par la pratique !
II Types simples. Valeurs.
1 Entiers
Python peut manipuler des entiers, positifs ou négatifs, et de taille quelconque.
Tapez les exemples suivants. Ici Python répond alors dans la ligne suivante, en se con-
tentant de redonner la valeur de l’entier considéré. Pour le moment rien de bien palpitant.
Pour l’entier très grand, tapez ce que vous voulez...
In [1]: 1
Out [1]: 1
In [2]: 2
Out [2]: 2
In [3]: -75925
Out [3]: -75925
In [4]: 256948265140514591056105861515915
Out[4]: 256948265140514591056105861515915
Attention Dans les versions antérieures de Python, il y avait deux types d’entiers : les entiers
et les entiers longs. Cette distinction a disparu à partir de la version 3.
On peut alors faire des calculs habituels sur ces entiers de manière très naturelle.
Addition, soustraction, multiplication s’obtiennent ainsi :
In [5]: 5 + 9
Out [5]: 14
In [6]: 5 - 8
Out [6]: -3
In [7]: 78 * 45
Out[7]: 3510
In [8]: 256948265140514591056105861515915 *
71202130156150456015261056
Out [8]:
18295263817931976953295246176894869801857309201762623706240
2. Dans le TP suivant, nous verrons qu’il est possible d’enregistrer des ensembles d’instructions dans
des fichiers, appelés scripts, que l’on pourra faire exécuter par Python, toujours à partir de Pyzo.
2
Lycée Victor Hugo MPSI-PCSI 2015-2016
La notion de type est fondamentale en informatique. On peut le tester pour les ex-
pressions déjà manipulées, à l’aide de l’instruction type. Ici Python répond par int ”,
ce qui signifie que les nombres manipulés sont de la classe integer, i.e. des nombres entiers
(relatifs).
In [10]: type (5)
Out [10]: int
In [11]: type (6)
Out [11]: int
In [12]: type (5 + 6)
Out [12]: int
In [13]: type (5 - 6)
Out [13]: int
In [14]: type (5 * 6)
Out [14]: int
Tout ceci est bien naturel, puisque la somme, la différence et le produit de deux entiers
sont toujours des entiers.
Il n’en va pas forcément de même pour la division, puisque en général le rapport de
deux entiers n’est pas un entier. Observons ce qui se passe :
In [15]: 8/3
Out[15]: 2.6666666666666665
In [16]: type (8/3)
Out[16]: float
On voit donc que le type du résultat d’une division est un nouveau type : le type
float (nombre à virgule flottante). On le voit à cause du séparateur décimal (le point
.” en Python).
À l’issue d’une division /”, le résultat sera toujours un flottant, même si le résultat
est mathématiquement un entier :
In [17]: 8/4
Out [17]: 2.0
In [18]: type (8/4)
Out[18]: float
(noter la réponse donnée sous la forme 2.0, avec présence du séparateur décimal)
Attention donc :
Le résultat d’une division est du type float.
2et 2.0 ne sont pas la même « chose »(à proprement parler, on devrait dire que ce
sont deux types d’objets différents dans Python).2est un entier, 2.0 est un nombre à
virgule flottante.
Si on veut absolument avoir un résultat entier, il faut utiliser la division entière.
3
Lycée Victor Hugo MPSI-PCSI 2015-2016
L’opérateur en Python correspondant est // ”, comme on le voit ci-dessous 3:
In []: 8 // 4
Out []: 2
In []: type (8 // 4)
Out []: int
In []: 8 // 3
Out []: 2
In []: type (8 // 3)
Out []: int
Si le résultat de la division tombe juste, on a donc la réponse exacte, sous forme d’un
entier. Sinon, a // b donne le quotient dans la division euclidienne de apar b(et c’est
aussi un entier).
Attention Ce comportement était différent dans les versions antérieures de Python.
Pour prendre la puissance d’un entier on peut utiliser deux syntaxes différentes :
l’opérateur ** ou la fonction pow.
In []: 5 ** 4
Out []: 625
In []: pow (5 , 4)
Out []: 625
Nous avons déjà entrevu le type float, que nous approfondissons maintenant.
2 Nombres à virgule flottante
Il s’agit du type naturel pour représenter les nombres réels (et donc ceux utilisés pour
des calculs numériques, en particulier en physique, en chimie et en SII, mais bien sûr aussi en
mathématiques).
Pour écrire un tel nombre on peut utiliser deux notations. La première utilise juste le
séparateur décimal.
In []: 256.32
Out []: 256.32
Si le nombre est trop grand ou trop petit, on peut utiliser la notation scientifique
en donnant sa mantisse et exposant. Par exemple, pour saisir le nombre 1,619 .1019,
l’écriture 1.619*10**(-19) est pénible et peu lisible. On lui préférera toujours :
In []: 1 .619 e -19
Out []: 1.619 e -19
In []: 1.619*10**(-19) # é criture lourde ...
Out []: 1.619 e -19 # ... m ê me r é sultat !
3. La numérotation des entrées/sorties n’ayant pas d’importance, on écrira In []: dans l’énoncé à
partir de maintenant.
4
Lycée Victor Hugo MPSI-PCSI 2015-2016
Le e-19 est donc à remplacer mentalement par ×1019 .
On dispose bien sûr des mêmes opérations que sur les entiers : addition, soustrac-
tion, multplication, division, puissance. Ici pas de problème de typage : le résultat de ces
opérations sur deux float est un float.
In []: 6.5 + 3.2
Out []: 9.7
In []: type (6.5 + 3.2)
Out []: float
In []: 6.5 - 3.2
Out []: 3.3
In []: type (6.5 - 3.2)
Out []: float
In []: 6.5 * 3.2
Out []: 20.8
In []: type (6.5 * 3.2)
Out []: float
In []: 6.5 / 3.2
Out []: 2.03125
In []: type (6.5 / 3.2)
Out []: float
Qu’en est-il si un des arguments est un entier et l’autre un nombre à virgule flottante ?
In []: 3 + 5.6
Out []: 8.6
In []: type (3 + 5.6)
Out []: float
Vous pouvez essayer avec les autres opérations : on constate donc que dans tous les
cas le résultat est de type float.
Abordons maintenant un point important qui sera développé dans le prochain cours :
les capacités d’un ordinateur étant finies, ce dernier ne peut pas manipuler de manière
exacte tous les nombres réels. Ceux-ci sont donc généralement stockés (représentés, manip-
ulés) sous forme approchée par la machine, et les calculs que l’on effectue avec eux sont
donc également nécessairement approchés. Illustrons ceci par le petit exemple suivant :
In []: 0.1
Out []: 0.1
In []: 0.1 + 0.1
Out []: 0.2
In []: 0.1 + 0.1 + 0.1
Out[]: 0.30000000000000004
5
1 / 14 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 !