Institut Préparatoire aux Études d'Ingénieurs de
Tunis
Leila Ben Othman
Première année de classes préparatoires
MP-PC
Année universitaire: 2017 - 2018
PYTHON: Introduction et prise en
main
Plan
1 Présention du langage
Site ociel
Contributeurs - Licence - Versions
Caractéristiques du langage
Domaine d'applications
Installation - IDLE
2 Mode shell et mode script
3 Premiers pas en PYTHON
Typage dynamique, objet, variable
Types élémentaires en PYTHON
Aectation
Conversion de types
Les bibliothéques en PYTHON
Présention du langage
Site ociel
Site ociel
• [Link]
L. Ben Othman, IPEIT 2017-2018 4 / 30
Présention du langage
Contributeurs - Licence - Versions
Contributeurs - Licence - Versions
• En 1989, Guido van Rossum (Institut National de Reherche en
Mathématique et Informatique - Pays-Bas) a commencé ses travaux
sur Python.
• PYTHON est diusé en 1991
• Contributeurs: PYTHON Software Foundation
• Licence libre
• Versions
• Deux versions de base: version 2 et version 3
• Actuellement PYTHON est à sa version 3.6 (Septembre 2017)
• PYTHON 2 et PYTHON 3 sont légérement incompatibles
L. Ben Othman, IPEIT 2017-2018 5 / 30
Présention du langage
Caractéristiques du langage
Caractéristiques du langage
• Haut niveau
• Orienté objet (Héritage multiple, Surcharge des opérateurs, etc)
• Libre
• Portable
• Interprété
• Dynamiquement typé
• Ecace (gestion d'exceptions)
• Dôté d'un gestionnaire de mémoire
• Facile à apprendre/à lire/à écrire/à maintenir (syntaxe très simple et
combinée à des types de données évolués (listes, dictionnaires, etc)
• Evolutif: Communauté très active
• Puissant: dôté de bibliothèques très variées (numpy, scipy, etc)
L. Ben Othman, IPEIT 2017-2018 6 / 30
Présention du langage
Domaine d'applications
Domaine d'applications
Que peut-on faire avec PYTHON?
• du calcul scientique/statistique (numpy, scipy)
• des graphiques (matplotlib)
• de la bioinformatique (Biopython)
• Data science (pandas, scikit-learn)
• des jeux (Pygame)
• des applications web
• interfacer des systèmes de gestion de bases de données
• etc
L. Ben Othman, IPEIT 2017-2018 7 / 30
Présention du langage
Installation - IDLE
Installation - IDLE
• Sous Windows, pour installer PYTHON, il sut de le télécharger à
partir du site ociel et de l'installer.
• Une fois Python installé, vous avez deux modes pour travailler: le
mode shell et le mode script.
• PYTHON ore un environnement de développement intégré (IDE:
Integrated Development Environment): IDLE
• IDLE propose un certain nombre d'outils:
• un éditeur de texte (pour le mode script, avec coloration syntaxique,
indentation automatique et auto-complétion)
• un débogueur pour tester le programme
• un interpréteur pour exécuter le programme
• Il existe d'autres IDE por PYTHON: Spyder, Eclipse, Pydev,
NetBeans, etc
L. Ben Othman, IPEIT 2017-2018 8 / 30
Mode shell et mode script
Mode shell
L. Ben Othman, IPEIT 2017-2018 9 / 30
Mode shell et mode script
Mode shell
>>>4+4
8
>>> prompt ou invite de commande
4+4 instruction PYTHON, entrée par l'utilisateur
8 réponse de l'interprète PYTHON
• Quelques opérations simples
• 4+4
• 4-4
• 4+2*2
• (4 + 2) * 2
• 10 / 2
• 10 % 2
L. Ben Othman, IPEIT 2017-2018 10 / 30
Mode shell et mode script
Opérations élémentaires
L. Ben Othman, IPEIT 2017-2018 11 / 30
Mode shell et mode script
Opérations élémentaires
In [1]: 4+4
Out [1]: 8
In [2]: 6-4
Out [2]: 2
In [3]: 2**4
Out [3]: 16
In [4]: pow(2,4)
Out [4]: 16
In [5]: 12//3
Out [5]: 4
L. Ben Othman, IPEIT 2017-2018 12 / 30
Mode shell et mode script
Opérations élémentaires
In [6]: 16/3
Out [6]: 5.3333333333
In [7]: 20%2
Out [7]: 0
In [8]: divmod(20,2)
Out [8]: (10,0)
L. Ben Othman, IPEIT 2017-2018 13 / 30
Mode shell et mode script
Mode script
L. Ben Othman, IPEIT 2017-2018 14 / 30
Premiers pas en PYTHON
Typage dynamique, objet, variable
Typage dynamique, objet, variable
• PYTHON est un langage orienté Objet
⇒ Tout est objet : données, fonctions, modules, etc
• Un objet PYTHON posséde:
• une valeur (des données matérialisées par des valeurs d'attributs)
• des opérations applicables (méthodes)
• un emplacement mémoire (adresse): la fonction id permet de
retourner l'adresse (identiant d'un objet).
• un type (nature de l'objet): la fonction type permet de retourner le
type d'un objet (classe).
• On n'a pas besoin de spécier le type d'un objet qu'on manipule ⇒
PYTHON gére ça automatiquement. On parle d'un typage
dynamique
L. Ben Othman, IPEIT 2017-2018 15 / 30
Premiers pas en PYTHON
Typage dynamique, objet, variable
Typage dynamique, objet, variable
• Pour manipuler des objets et les distinguer l'un de l'autre, on utilise
des variables. On dit qu'une variable fait référence à un objet.
• Une aectation x=5, implique:
• la création d'un objet de type entier (int) avec une valeur égale à 5.
• Le référencement de cet objet par la variable x.
• Un objet ne peut changer ni d'adresse mémoire ni de type.
• Quand un objet n'est plus référencé, il est détruit automatiquement
(le mécanisme de ramasse miette ou de garbage collector).
L. Ben Othman, IPEIT 2017-2018 16 / 30
Premiers pas en PYTHON
Types élémentaires en PYTHON
Types élémentaires en PYTHON
• NoneType: seule valeur possible est None. C'est la valeur retournée
par une fonction qui ne retourne rien;
• int: les nombres entiers;
• oat: les nombres réels;
• complex: les nombres complexes;
• bool: True, False
• str: les chaînes de caractéres
L. Ben Othman, IPEIT 2017-2018 17 / 30
Premiers pas en PYTHON
Types élémentaires en PYTHON
Types élémentaires en PYTHON
In [1]: x=4;type(x)
Out [1]: <class 'int'>
In [2]: x=4.5;type(x)
Out [2]: <class 'oat'>
In [3]: x=4+5j;type(x)
Out [3]: <class 'complex'>
In [4]: x=True;type(x)
Out [4]: <class 'bool'>
In [5]: x='Bonjour';type(x)
Out [5]: <class 'str'>
In [6]: x=None;type(x)
Out [6]: <class 'NoneType'>
L. Ben Othman, IPEIT 2017-2018 18 / 30
Premiers pas en PYTHON
Types élémentaires en PYTHON
Création d'un objet de type complex Manipulation d'un nombre
> x=1+5j ou bien x=complex(1,5) complexe
> type(x) > [Link] # partie réelle
<class 'complex'> 1.0
> [Link] # partie imaginaire
5.0
> [Link]() # le conjugué
(1-5j)
L. Ben Othman, IPEIT 2017-2018 19 / 30
Premiers pas en PYTHON
Types élémentaires en PYTHON
Égalité de valeur, égalité physique
L'opérateur == test l'égalité de valeur entre objets.
•
• L'opérateur is test l'égalité pyhsique entre objets (égalité des
adresses mémoires)
Remarques:
• On parle d'égalité de valeur lorsque deux variables référencent la
même valeur à deux emplacements mémoires pouvant être
diérents. Dans ce cas, nous avons deux objets diérents qui ont
une même valeur.
• On parle d'égalité physique lorsque deux variables référencent le
même emplacement mémoire, ce qui implique l'égalité de valeur.
Dans ce cas, nous avons un objet unique et par conséquent une
valeur unique.
L. Ben Othman, IPEIT 2017-2018 20 / 30
Premiers pas en PYTHON
Types élémentaires en PYTHON
Égalité de valeur, égalité physique
In [1]: x=4;y=4; id(x); id(y)
Out [1]: (54564007,54564007)
In [2]: x==y,x is y
Out [2]: (True,True)
In [3]: a=4+5j;b=4+5j;id(a),id(b)
Out [3]: (12034569,12034465)
In [4]: a==b, a is b
Out [4]: (True,False)
In [5]: a=4+5j;b=a;id(a),id(b)
Out [5]: (12055465,12055465)
In [6]: x==b,a is b
Out [6]: (True,True)
L. Ben Othman, IPEIT 2017-2018 21 / 30
Premiers pas en PYTHON
Aectation
Aectation simple, multiple, parrallèle
In [1]: x=4;id(x) # aectation simple
Out [1]: 12034569
In [2]: x=y=z=4;id(x),id(y) # aectation multiple
Out [2]: (12034569,12034569,12034569)
In [3]: x,y,z=4,5,6;id(x),id(y),id(z) # aectation parrallèle
Out [3]: (12034569,12034570,12034571)
In [4]: x,y=y,x;id(x),id(y) # permutation
Out [4]: (12034570,12034569)
L. Ben Othman, IPEIT 2017-2018 22 / 30
Premiers pas en PYTHON
Aectation
Autres syntaxes des opérateurs mathématiques
In [1]: x=4;x+=1;x # x=x+1
Out [1]: 5
In [2]: x-=x;x # x=x-x
Out [2]: 0
In [3]:x=4;x*=2 # x=x*2
Out [3]: 8
In [4]:x/=x;x # x=x/x
Out [4]: 1
L. Ben Othman, IPEIT 2017-2018 23 / 30
Premiers pas en PYTHON
Conversion de types
Conversion de types
• On peut passer d'un type à un autre en utilisant les fonctions
suivantes : int(), oat(), str(), complex()
• La conversion n'est pas toujours possible. Par exemple, il n'est pas
possible de convertir un type complex en oat ou int.
• Attention, ces fonctions créent de nouveaux objets avec le type
spécié et ne modient pas le type de l'objet d'origine.
L. Ben Othman, IPEIT 2017-2018 24 / 30
Premiers pas en PYTHON
Conversion de types
Conversion de types
La fonction int()
In [1]: int(4.5);
Out [1]: 4
In [2]: int(True)
Out [2]: 1
In [3]: int(False)
Out [3]: 0
In [4]: int('45')
Out [4]: 45
In [5]: int(1+5j)
Out [5]: Erreur
L. Ben Othman, IPEIT 2017-2018 25 / 30
Premiers pas en PYTHON
Conversion de types
Conversion de types
La fonction oat()
In [1]: oat(4);
Out [1]: 4.0
In [2]: oat(True)
Out [2]: 1.0
In [3]: oat(False)
Out [3]: 0.0
In [4]: oat('45')
Out [4]: 45.0
In [5]: oat(1+5j)
Out [5]: Erreur
L. Ben Othman, IPEIT 2017-2018 26 / 30
Premiers pas en PYTHON
Conversion de types
Conversion de types
La fonction complex()
In [1]: complex(4);
Out [1]: 4+0j
In [2]: complex(6.5)
Out [2]: 6.5+0j
In [3]: complex(True)
Out [3]: 1+0j
In [4]: complex(False)
Out [4]: 0j
In [5]: complex('4+5j')
Out [5]: 4+5j
L. Ben Othman, IPEIT 2017-2018 27 / 30
Premiers pas en PYTHON
Conversion de types
Conversion de types
La fonction str()
In [1]: str(4);
Out [1]: '4'
In [2]: str(6.5)
Out [2]: '6.5'
In [3]: str(True)
Out [3]: 'True'
In [4]: str(False)
Out [4]: 'False'
In [5]: str(4+5j)
Out [5]: '4+5j'
L. Ben Othman, IPEIT 2017-2018 28 / 30
Premiers pas en PYTHON
Les bibliothéques en PYTHON
L'import de bibliothéque
Fonctions mathématiques supplémentaires
In [1]: sqrt(4)
Out[1]: NameError: name 'sqrt' not dened
In [2]: import math # méthode 1
In [3]: [Link](4)
Out [3]: 2.0
In[4]: import math as m # méthode 2 - avec alias
In[5]: [Link](4)
out[5]: 2.0
In[6]: from math import * # méthode 3
In[7]: sqrt(4)
out[7]:IPEIT
L. Ben Othman, 2.02017-2018 29 / 30
Premiers pas en PYTHON
Les bibliothéques en PYTHON
L'import de bibliothéque
Fonctions mathématiques supplémentaires
In [1]: dir(math) # ache toutes les fonctions de la bibliothéque math
Out[1]: ['__doc__', '__name__', '__package__', 'acos', 'acosh',
'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh',
'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'oor', 'fmod',
'frexp', 'fsum', 'gamma', 'hypot', 'isnite', 'isinf', 'isnan', 'ldexp',
'lgamma', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh',
'sqrt', 'tan', 'tanh', 'trunc']
In [2]: help([Link]) # ache une desription de la fonction
Out[2]:
Help on built-in function sin in module math:
sin(...)
sin(x)
Return the sine of x (measured in radians).
L. Ben Othman, IPEIT 2017-2018 30 / 30