Langage Python
Dr Ibrahima GAYE
École Supérieure Polytechnique
ESP
3 juin 2020
1 Dr I GAYE - ibou13@[Link] Langage Python
Outline
2 Dr I GAYE - ibou13@[Link] Langage Python
Introduction au langage python
Introduction (1)
Python
Python est un langage qui permet une programmation
modulaire et orientée objet. Python est développé depuis 1989
par Guido Van Rossum et de nombreux contributeurs
bénévoles.
3 Dr I GAYE - ibou13@[Link] Langage Python
Introduction au langage python
Introduction (2)
Propriétés (1)
Portable : Unix, MacOS, BeOS, NeXTStep, MS-DOS et
les différentes variantes de Windows.
Compilateur, baptisé JPython, est écrit en Java et génère
du bytecode Java.
Gratuit : mais peut être utiliser dans des projets
commerciaux
Syntaxe très simple et, combinée à des types de données
évolués (listes, dictionnaires,...) ; conséquence :
programme très compact et lisible
Pas de pointeurs explicites.
4 Dr I GAYE - ibou13@[Link] Langage Python
Introduction au langage python
Introduction (3)
Propriétés (2)
Orienté-objet : supporte l’héritage multiple et la surcharge
des opérateurs ; reprenant la terminologie de C++, toutes
les méthodes sont virtuelles.
Extensible : facilement l’interfacer avec des bibliothèques
C existantes. On peut aussi s’en servir comme d’un
langage d’extension pour des systèmes logiciels
complexes.
bibliothèque standard, et paquetages, donnent accès
aux services telsques les chaînes de caractères et les
expressions régulières, les services UNIX standard
(fichiers, pipes, signaux, sockets, threads...), les protocoles
Internet (Web, News, FTP, CGI, HTML...), la persistance et
bases de données, les interfaces graphiques.
5 Dr I GAYE - ibou13@[Link] Langage Python
Introduction au langage python
Introduction (4)
Propriétés (3)
Python continue à évoluer sans cesse en ne visant qu’à
améliorer ou perfectionner le produit. Présentement, nous
sommes à la version [Link]. Plus précisément, la version 3.8. La
version 2 de Python est désormais obsolète et cessera d’être
maintenue après le 1er janvier 2020.
6 Dr I GAYE - ibou13@[Link] Langage Python
Introduction au langage python
Introduction (5)
Types d’implémentation
CPython : Implémentation de base basé sur le langage C
ANSI
Jython : Implémentation permettant de mixer Python et
java dans la même JVM
IronPython : Implémentation permettant d’utiliser Python
pour [Link]
PyPy : Implémentation de Python en Python
CLPython : Implémentation de Python en Common Lisp
7 Dr I GAYE - ibou13@[Link] Langage Python
Objets sous python
Notion d’objets (1)
Variable (1)
Une variable est une zone de la mémoire de l’ordinateur
dans laquelle une valeur est stockée. Elle est définie par :
un identificateur (le nom de l’espace mémoire)
Son type (qui est implicite ; il est défini au moment de
l’initialisation)
Sa valeur
Note importante : sous Python une variable est déclarée
lors de son initialisation.
8 Dr I GAYE - ibou13@[Link] Langage Python
Objets sous python
Notion d’objets (2)
Variable (2)
Sous Python, les constantes sont toutes les valeurs
numériques, chaînes de caractères, . . ., tout ce qui n’est
pas désigné par un nom.
9 Dr I GAYE - ibou13@[Link] Langage Python
Objets sous python
Notion d’objets (3)
Les types
Un type = un ensemble de constantes + un ensemble
d’opérations qu’on applique avec ces constantes
10 Dr I GAYE - ibou13@[Link] Langage Python
Objets sous python
Notion d’objets (4)
Les types - None
Type « rien » ou None :
Comme le type de la variable est connu après
l’initialisation, python propose un type None pour signifier
qu’une variable ne contient rien.
La variable est de type None et est égale à None.
11 Dr I GAYE - ibou13@[Link] Langage Python
Objets sous python
Notion d’objets (5)
Les types - numériques (entier et réel)
Il existe deux types pour les numériques en python :
les nombres réels float
les nombres entiers int
L’instruction x=3 crée une variable de type int initialisée à 3
tandis que y=3.0 crée une variable de type float initialisée à
3.0.
12 Dr I GAYE - ibou13@[Link] Langage Python
Objets sous python
Notion d’objets (6)
Les types - numériques (entier et réel)
13 Dr I GAYE - ibou13@[Link] Langage Python
Objets sous python
Notion d’objets (7)
Les types - numériques (entier et réel) - Opérateurs
Les opérations arithmétiques de base se font de manière
simple sur les types numériques.
Les types - numériques (entier et réel) - Opérateurs -
Remarque
Toutefois que si vous mélangez les types int et float, le résultat
est renvoyé comme un float (car le int sera converti en float
avant d’effectuer l’opération). Par ailleurs, l’utilisation de
parenthèses permet de gérer les priorités.
14 Dr I GAYE - ibou13@[Link] Langage Python
Objets sous python
Notion d’objets (8)
Les types - numériques (entier et réel) - Opérateurs
15 Dr I GAYE - ibou13@[Link] Langage Python
Objets sous python
Notion d’objets (9)
Les types - chaînes de caractères
Sous Python, une donnée de type string est une suite
quelconque de caractères délimitée soit par des apostrophes
(simple quotes), soit par des guillemets (double quotes).
Les types - chaînes de caractères - Opérations
la concaténation (+)
la répétition (*)
d’autres opérations telles que len, [], ... qui vous
permettrons d’accéder à un caractère, la longueur, une
sous-chaîne, ...
16 Dr I GAYE - ibou13@[Link] Langage Python
Objets sous python
Notion d’objets (10)
Les types - chaînes de caractères
17 Dr I GAYE - ibou13@[Link] Langage Python
Les fonctions entrées et Sorties (input() et print()
Entrées et Sorties (1)
La fonction : print()
Elle accepte un nombre arbitraire d’expressions. Elle affichera
chacune d’elles dans l’ordre, séparées par un espace. La
dernière valeur est suivie d’une retour à la ligne.
18 Dr I GAYE - ibou13@[Link] Langage Python
Les fonctions entrées et Sorties (input() et print()
Entrées et Sorties (2)
La fonction : print() - Écriture formatée
La méthode .format() permet une meilleure organisation de
l’affichage des variables
19 Dr I GAYE - ibou13@[Link] Langage Python
Structures de contrôle
Structures de contrôle (1)
C’est quoi
Elles décrivent la manière d’enchaîner des instructions. Elles
permettent des traitements séquentiels, conditionnels ou
répétitifs (itératifs)
20 Dr I GAYE - ibou13@[Link] Langage Python
Structures de contrôle
Structures de contrôle (2)
Bloc d’inscriptions
En programmation, les instructions d’un même bloc sont
exécutées séquentiellement, c’est-à-dire, les unes après
les autres, donc dans l’ordre où elles sont écrites.
En python, les blocs d’instructions sont matérialisés par
leur indentation. C’est par exemple ce que nous avons fait
pour définir d’une boucle tant que :
tantque(Expression conditionnelle) :
instruction1
instruction2
instruction3
instruction4
suite du programme
21 Dr I GAYE - ibou13@[Link] Langage Python
Structures de contrôle
Structures de contrôle - Structures conditionnelles (1)
Structures conditionnelles - Structure pure
La conditionnelle permet d’exécuter une séquence
d’instruction, seulement si une condition est vraie.
if condition :
Sequence
suite
22 Dr I GAYE - ibou13@[Link] Langage Python
Structures de contrôle
Structures de contrôle - Structures conditionnelles (2)
Structures conditionnelles - Structure pure
La condition est nécessairement une expression
booléenne.
Évaluation :
la condition est évaluée ;
si la condition est vraie, la séquence est exécutée puis le
contrôle passe à la suite ;
si la condition est fausse, le contrôle passe à la suite, sans
exécuter la séquence.
23 Dr I GAYE - ibou13@[Link] Langage Python
Structures de contrôle
Structures de contrôle - Structures conditionnelles (3)
Structures conditionnelles - Structure pure
def parite (valeur) :
""" affiche ‘PAIRE’ si le paramètre valeur est paire """
if valeur%2==0 :
print(PAIRE !’)
Test :
> > > parite (0)
PAIRE
> > > parite (12)
PAIRE
> > > parite (-3)
> > > parite (25)
24 Dr I GAYE - ibou13@[Link] Langage Python
Structures de contrôle
Structures de contrôle - Structures conditionnelles (4)
Structures conditionnelles - Structure alternative
La conditionnelle Si...Alors...Sinon... permet de poser une
alternative.
if condition :
Sequence1
else :
Sequence2
suite
25 Dr I GAYE - ibou13@[Link] Langage Python
Structures de contrôle
Structures de contrôle - Structures conditionnelles (5)
Structures conditionnelles - Structure alternative
Si la condition est vraie, c’est la séquence1 qui sera exécutée,
sinon c’est la séquence2 qui sera exécutée. Dans tous les cas,
l’exécution continuera à suite.
26 Dr I GAYE - ibou13@[Link] Langage Python
Structures de contrôle
Structures de contrôle - Structures conditionnelles (6)
Structures conditionnelles - Structure alternative
def max(a, b) :
""" renvoie le plus grand des deux arguments """
if a > b :
max = a
else :
max = b
return max
Test :
> > > max(-8, 3)
3
> > > max(-2, -3)
-2
27 Dr I GAYE - ibou13@[Link] Langage Python
Structures de contrôle
Structures de contrôle - Structures conditionnelles (7)
Structures conditionnelles - imbrication
Naturellement, il est possible d’imbriquer les structures de
contrôle conditionnelles les unes à l’intérieur des autres,
comme ceci :
if condition1 :
if condition2 :
sequence suite
Structures conditionnelles - imbrication - équivalence
Toutefois, on préfèrera l’utilisation d’une conjonction dans la
condition (car les opérateurs booléens s’exécutent s’une
manière séquentielle) :
if condition1 and condition2 :
sequence
suite
28 Dr I GAYE - ibou13@[Link] Langage Python
Structures de contrôle
Structures de contrôle - Structures conditionnelles (8)
Structures conditionnelles - clause SinonSi
On peut ajouter autant de clause SinonSi (elif en Python,
contraction de else if) que de conditions à tester si les
précédentes ont renvoyé faux.
if condition1 :
sequence1
elif condition2 :
sequence2
elif condition3 :
sequence3
else :
sequence4
suite
29 Dr I GAYE - ibou13@[Link] Langage Python
Structures de contrôle
Structures de contrôle - Structures itératives (1)
Structures conditionnelles - Structures itératives
Les répétitions permettent d’exécuter plusieurs fois une même
séquence d’instructions. Il est important de vérifier qu’une
répétition se termine effectivement (notion de variant).
30 Dr I GAYE - ibou13@[Link] Langage Python
Structures de contrôle
Structures de contrôle - Structures itératives (3)
Structures conditionnelles - Structures itératives - la boucle
tantQue
La répétition TantQue permet d’exécuter une séquence
d’instructions tant qu’une condition est vraie.
Évaluation :
La condition est évaluée.
Si la condition est vraie, on exécute la séquence et on
recommence en 1.
Si la condition est fausse, on exécute la suite (on sort donc
de la boucle).
31 Dr I GAYE - ibou13@[Link] Langage Python
Structures de contrôle
Structures de contrôle - Structures itératives
Structures conditionnelles - Structures itératives - la boucle
tantQue
syntaxe
while condition :
sequence
suite
32 Dr I GAYE - ibou13@[Link] Langage Python
Structures de contrôle
Structures de contrôle - Structures itératives (4)
Structures conditionnelles - Structures itératives - la boucle
tantQue
Attention :
Afin de garantir la terminaison du programme, il faut s’assurer
que la condition va finir par être fausse, et ainsi que le
programme ne restera pas infiniment dans la boucle. C’est pour
cela que la séquence d’instructions doit modifier la condition.
Attention, c’est une condition nécessaire mais pas suffisante.
Structures conditionnelles - Structures itératives - la boucle
tantQue
Variant :
On appelle variant une entier positif qui décroit strictement à
chaque itération. Si on est capable de mettre en évidence un
tel variant, on a prouvé que la boucle se termine.
33 Dr I GAYE - ibou13@[Link] Langage Python
Structures de contrôle
Structures de contrôle - Structures itératives (5)
Structures conditionnelles - Structures itératives - la boucle
tantQue
def decompter(n) :
""" affiche un décompte en partant de n, et jusqu’à 0 """
i=n
while i >= 0 :
print(i)
i=i-1
decompter(5)
5
4
3
2
1
0
34 Dr I GAYE - ibou13@[Link] Langage Python
Structures de contrôle
Structures de contrôle - Structures itératives (6)
Structures conditionnelles - Structures itératives - la boucle
tantQue
Ici le variant est i+1. Il est positif au départ, il décroit de 1 à
chaque itération, il reste positif à chaque itération.
35 Dr I GAYE - ibou13@[Link] Langage Python
Structures de contrôle
Structures de contrôle - Structures itératives (7)
Structures conditionnelles - Structures itératives - la boucle
PourChaque
La répétition PourChaque permet d’exécuter une séquence
d’instructions un nombre connu de fois, pour chaque élément...
Range
Il est possible de créer une boucle facilement avec range :
> > > range(4, 10, 2) # range(début, fin, pas) : 4, 6, 8
range(4, 10, 2)
> > > range(4, 10) # range(début, fin) pas=1 : 4, 5, 6, 7, 8, 9
range(4, 10)
> > > range(10) # range(fin) début=0, pas=1 : 0, 1, 2, 3, 4, 5, 6,
7, 8, 9
36 Dr I GAYE - ibou13@[Link] Langage Python
Listes
les listes
Listes
On peut définir une liste comme une collection d’éléments
séparés par des virgules, l’ensemble étant enfermé dans des
crochets.
Exemple :
37 Dr I GAYE - ibou13@[Link] Langage Python
Listes
les listes
Listes
Les listes sont comme les chaînes de caractères, elles
sont des séquences, c’est-à dire des collections
ordonnées d’objets.
Premier élément est indexé par zéro et le dernier élément
len(liste)-1
38 Dr I GAYE - ibou13@[Link] Langage Python
Listes
les listes
Listes
Il est possible d’utiliser les opérations standard telles que :
ajouter (append), supprimer (remove ou pop), ...
39 Dr I GAYE - ibou13@[Link] Langage Python
Listes
les listes
Listes
Remarques :
append : une opération de concaténation
pop(i) : renvoie l’élément qui est à la position i et le
supprime de la liste
remove(el) : deux possibilités :
el est présent dans la liste : elle supprime la première
occurrence
el n’est pas présent : elle génère une exception
40 Dr I GAYE - ibou13@[Link] Langage Python
Fonctions
les fonctions
Fonction
Décomposition en problèmes simples (élémentaires)
Ré-utilisation de la même portion de code
Solutions
les sous-programmes (fonctions)
les classes
41 Dr I GAYE - ibou13@[Link] Langage Python
Fonctions
les fonctions
Fonction - syntaxe générale
def nomDeLaFonction(liste de paramètres) : séquence
nomDeLaFonction doit respecter les règles d’un
identificateur
Comme dans les structures while, if, ... l’indentation est
obligatoire
Les paramètres sont mis dans les parenthèses (même s’il
n’y a pas de paramètres, les parenthèses sont obligatoire)
42 Dr I GAYE - ibou13@[Link] Langage Python
Fonctions
les fonctions
Fonction - syntaxe générale - Exemples
43 Dr I GAYE - ibou13@[Link] Langage Python
Modules
Les modules
Modules
Les modules sont des fichiers qui regroupent des
ensembles de fonctions
Il existe un grand nombre de modules pré-programmés.
On peut aussi programmer notre module
Souvent on essaie de regrouper dans un même module
des ensembles de fonctions apparentées, que l’on appelle
des bibliothèques.
44 Dr I GAYE - ibou13@[Link] Langage Python
Modules
Les modules
Modules - Exemples
Le module Math
Syntaxe :
from math import *
Utilisation :
racine = sqrt(nombre)
sinusx = sin(angle)
45 Dr I GAYE - ibou13@[Link] Langage Python
Modules
Les modules
Modules - Exemples
Le module turtle
Syntaxe :
from turtle import *
Utilisation :
reset()
forward(150)
46 Dr I GAYE - ibou13@[Link] Langage Python
Modules
Les modules
Modules - Exemples
Le module turtle
47 Dr I GAYE - ibou13@[Link] Langage Python
Fichiers
Les fichiers
collection d’informations stockées sur une mémoire de masse
(non volatile, capacité plus importante que la mémoire vive)
L’utilisation d’un fichier ressemble beaucoup à l’utilisation d’un
livre
1 Trouver le livre
2 L’ouvrir
3 L’utiliser
4 Le fermer
48 Dr I GAYE - ibou13@[Link] Langage Python
Fichiers
Les fichiers
Natures de fichiers
selon l’organisation des données :
structuré : les informations sont organisées d’une manière
particulière qu’il faut respecter (ex. fichiers
d’enregistrements) ;
non-structuré : les informations sont alignées à la suite (ex.
fichier texte)
Selon le mode d’accès aux données :
accès indicé : utilisable comme un tableau ;
accès séquentiel : lecture ou écriture pas à pas (ex. ligne
par ligne dans un fichier texte)
49 Dr I GAYE - ibou13@[Link] Langage Python
Fichiers
Les fichiers
Fichiers textes - Lecture
L’ouverture en lecture
f = open("[Link]","r")
open() permet d’ouvrir un fichier, en lecture ici avec l’option
« r ». La fonction renvoie un objet de type fichier stocké
dans f. Le curseur de fichier est placé sur la première ligne
La lecture
s = [Link]()
read() lit tout le contenu du fichier d’un bloc
ligne = [Link]()
readlines() permet de lire une ligne entière
NB : la fonction renvoie la chaîne vide lorsque nous
arrivons à la fin du fichier
La fermeture
[Link]()
close() ferme le fichier (et donc le déverrouille)
50 Dr I GAYE - ibou13@[Link] Langage Python
Fichiers
Les fichiers
Fichiers textes - Écriture
L’ouverture en écriture
f = open("[Link]","w")
open() permet d’ouvrir un fichier en écriture avec l’option
"w". La fonction renvoie un objet de type fichier référencée
par f. L’option "w", le fichier est écrasé s’il existe déjà.
L’écriture
Écriture
[Link]("EPITA")
[Link]("ESITEC")
[Link]("MERCURE")
NB : l’option \n est pour retournée à la ligne
[Link]()
51 Dr I GAYE - ibou13@[Link] Langage Python
Fichiers
Les fichiers
Fichiers textes - Ajout
f = open("[Link]","a")
Pour l’ajout dans un fichier texte, utiliser le mode
d’ouverture "a" (le mode concaténation)
52 Dr I GAYE - ibou13@[Link] Langage Python
Fichiers
Les fichiers
Fichiers binaires
Les fichiers sous python sont traités en mode binaire. La
lecture se fait par Octet ou par blocs d’octets.
Intérêt : traitement des fichiers comme les images.
53 Dr I GAYE - ibou13@[Link] Langage Python
Fichiers
Les fichiers
Fichiers binaires
ouverture en lecture
f = open("[Link]","rb")
lire un octet
a = [Link](1)
Postion du curseur
print("position : ",[Link]())
54 Dr I GAYE - ibou13@[Link] Langage Python
Fichiers
Les fichiers
Fichiers structurés - Exemple : le format CSV
55 Dr I GAYE - ibou13@[Link] Langage Python
Classes, Objets, Attributs
Classes, Objets, Attributs
L
es classes sont les principaux outils de la programmation
orientée objet (Object Oriented Programming ou OOP).
56 Dr I GAYE - ibou13@[Link] Langage Python