Cours Python 2.1 1 Introduction 2 Saisir, exécuter, observer - MPSI-3

Cours Python 2.1
2013/2014
1 Introduction
Le langage Python est un langage d´evelopp´e `a partir de 1990 par Guido van Rossum. Il doit son nom
aux Monty Python dont Van Rossum ´etait fan.
C’est un langage multi-paradigme (imp´eratif, objet, fonctionnel) et dot´e d’un typage dynamique fort,
d’une gestion automatique de la m´emoire par ramasse-miettes et d’un syst`eme de gestion d’exceptions.
Il est sous licence libre.
Il a ´et´e con¸cu pour ˆetre tr`es lisible, et notamment l’indentation permet de d´elimiter les blocs, au lieu
d’utiliser des accolades comme en C ou Java.
Pour utiliser un langage de programmation confortablement, on a besoin de ce que l’on appelle un
environnement de d´eveloppement. Nous utiliserons , Pyzo. Il permet d’´editer des programmes, de les
sauvegarder, de les ex´ecuter, il est multi-plateforme et gratuit.
2 Saisir, ex´ecuter, observer
On peut «communiquer »avec l’interpr´eteur Python de deux mani`eres di´erentes.
2.1 Le mode interactif direct
On tape des instructions dans le «shell »et on valide pour obtenir la r´eponse :
1>>> <Ma commande>
2<Sa réponse !>
3>>> <--- il attend une nouvelle commande
Quelques exemples :
1>>> 42**42
215013093754529657235677197216425445781404797056873
38777235893533016064
4>>> id(sqrt(2))
6>>> import math ; math.sqrt(12) # on doit inclure l’instruction "
import math" pour pouvoir faire appel aux fonctions mathématiques
qu’il faut "pointer" avec le préfixe math
1
Remarque 1
On peut aussi utiliser l’instruction
from math import *
pour importer toutes les fonctions math´ema-
tiques disponibles.
2.2 Le mode scripting : «Programming is Hard, Let’s Go Scripting... »
On saisit les instructions dans un fichier et on ex´ecute tout ou une partie des ces instructions. Dans le
«
shell
»
on voit les sorties et les commentaires de l’interpr`eteur. On l’utilise pour des programmes plus
longs et que l’on souhaite enregistrer, le plus souvent.
3 Des classes, des objets `a d´efinir et `a manipuler
Le langage Python est oriene objets. Les expressions que l’on utilise d´esignent des objets qui
appartiennent `a des classes, c’est `a dire des familles nomm´ees.
Certaines de ces classes sont d´efinies par d´efaut, d’autres dans des modules qu’il faut charger.
Les utilisateurs peuvent aussi d´efinir leurs propres classes et aussi leurs modules.
´
Etudions quelques classes des plus utilis´ees.
3.1 Les types ou classes de nombres
Il s’agit d’objets pr´ed´efinis et non modifiables. Ils sont regroup´es en plusieurs classes.
3.1.1 Des entiers, la classe int
Cette classe repr´esente les entiers relatifs. En Python 3, il n’y a quasiment pas de limite `a la
repr´esentation des entiers comme vous avez pu le voir dans le TD1.
Les principales op´erations sur les entiers :
+ : addition - : soustraction * : multiplication ** : exponentiation
/ : division // : division enti`ere %:modulo abs : valeur absolue
1>>> type(-12) # la fonction type retourne le type i.e. la classe d’
un objet
3>>> type(12/5)==’int’
5>>> 5//3 ;type(5//3)) # // division entière
7>>>
3.1.2 Les bool´eens, la classe bool
Cette classe contient 2 objets, True (1) et False (0).
C’est une sous classe de la classe
int
. Donc tout les op´erateurs que l’on a vu pr´ec´edemment peuvent
s’utiliser sur les bool´eens.
1>>> 2==3
3>>> True+False
Les op´erateurs de cette classe sont les suivants : and (et), or (ou) et not (non).
2
1>>> True and False
3>>> True or False
5>>> not(True+True)
3.1.3 Des d´ecimaux, la classe float
Un
float
est not´e avec un point d´ecimal (jamais avec une virgule ) ou en notation exponentielle. Il
repr´esente une nombre d´ecimal compris entre 1,710308 et 1,710308.
Les flottants supportent les mˆemes op´erations que les entiers.
1>>> 3.14 ;123e-12
4>>> type(-12/5)
6>>> b=42**4.2
7>>> type(b)
9>>> 5.1.is_integer() #il s’agit d’une méthode de l’objet : objet.
méthode
Remarque 2 (Les limites de la repr´esentation des r´eels en virgule flottante)
1>>> 0.1+0.2-0.3
Ce probl`eme vient de la repr´esentation des r´eels en virgule flottante. On a aussi des erreurs du type :
1>>> 1e10+1e-10==1e10
3.1.4 Des nombres complexes, la classe complex
La classe complex permet de travailler avec des nombres complexes .
Ces objets supportent les mˆemes op´erations que les entiers, sauf la division enti`ere.
1>>> (2+2j)*1j
3>>> (-2+2j)/(3-2j)
5>>> (-2-1.5j).real
7>>> ((1+2j)**2).conjugate()
3
Avant d’aller plus loin : attributs et m´ethodes d’une classe ...
L’une des sp´ecificit´es de la programmation orienee objets, c’est
l’encapsulation
.Cest`adireque
lorsque on d´efinit une classe d’objets, on d´efinit les attributs et les m´ethodes de la classe.
Par exemple, un objet de type complexe poss`ede les attributs
real
et
imag
. Ces attributs sont de
type float.
Un objet poss`ede aussi des m´ethodes qui eectuent des actions en utilisant cet objet. Par exemple la
ethode conjugate qui s’utilise comme dans l’exemple pr´ec´edent.
Mais on a vu aussi que l’on peut appliquer des fonctions aux objets. Celles ci ne font pas partie de la
d´efinition de la classe.
... et les variables ou r´ef´erences d’objets
Pour acc´eder plus simplement aux objets, Python utilise la notion de
variable ou de r´ef´erence
d’objet. Pour d´efinir une variable on utilise l’aectation :
1<la variable> = <un identificateur d’objet>
La variable n’est pas l’objet mais elle r´ef´erence l’objet en contenant l’identificateur de l’objet. Tant
qu’une nouvelle aectation n’est pas r´ealis´ee, elle r´ef´erence toujours le mˆeme objet.
Essayer ceci :
1>>> a=2
3>>> id(a) ;id(2)
5>>> b=a ;b=3 ;
7>>> id(a) ;id(b) ;id(3) ;id(2)
Dans les d´efinitions et exemples de ce document le mot «objet »pourra parfois ˆetre
remplac´e «ef´erence d’objet ».Onv´erieraquecestpossible.
3.2 Les chaˆınes de caract`eres, la classe str
Les objets de type
str
sont identifi´es par une suite finie de caract`eres d´elimit´ee par des apostrophes
ou des guillemets. Ces objets ne sont pas modifiables.
Les caract`eres de l’objet
str
sont num´erot´es `a partir de
0
de gauche `a droite dans l’ordre croissant et
`a partir de 1de droite `a gauche dans l’ordre d´ecroissant.
Saisissez les lignes suivantes dans un fichier de l’´editeur.
4
1a=’MPSI’ ’3’ ; print(a)
3print(type(a))
5b=’Alors là je dis "OUI" !
7c=’et je redis :\n "OUI" !
9print(b,c)
11 a=’Lycée ’+’THIERS’
13 print(a[7 :]) # 1er caractère inclus : 1er caractère exclus
15 print(a[-4 :-1])
17 print(len(’MPSI 3’),’MPSI 3’[ :],’MPSI 3’>’MPSI 2’)
3.3 Des s´equences : listes et tuples
3.3.1 La classe list
L’un des types les plus utilis´es en Python est la liste d’objets. Les listes peuvent comporter des objets
de types di´erents. On d´efinit une liste en ´enum´erant, entre deux crochets, ses ´el´ements s´epar´es par des
virgules. Les listes sont des objets modifiables !
Saisissez les lignes suivantes dans une cellule d’un fichier de l’´editeur.
1a=[1, ’A’,[2]]
3print(type(a))
5print(type(a[2]))
7b=a ; print(b,id(b))
9a.append(True)
11 print(a, b,id(b))
On acc`ede aux ´el´ements d’une liste comme aux caract`eres d’une chaine et on coupe les listes avec la
mˆeme syntaxe que celle utilis´ee pour les chaˆınes.
3.3.2 La classe tuple
Elle est tr`es similaire `a la classe liste `a ceci pr`es que ses ´el´ements ne sont pas modifiables. Pour d´efinir
un tuple on remplace les crochets des listes par des parenth`eses.
Tester :
5
1 / 12 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 !