Initiation A Python 2021
Initiation A Python 2021
Initiation Python
Reconvert, Paris.
© Reconvert
Léopold GAMBA
Paris
1
Programmation
Programmation
Reconvert, Paris.
En langage Python
© Reconvert
initiation.
2
Programmation
Pré-requis
Reconvert, Paris.
© Reconvert
3
Les points abordés
2- Installer Python 13
Reconvert, Paris.
3- Opérations de base 19
© Reconvert
4- Notion de module 23
4
#1 Introduction & historique
1 - Historique , caractéristiques
a- Langage créé en 1990 par Guido Von Rossum
Code fonctionnel
Programmation OO
Gestion de la mémoire
Langage de haut niveau ( abstraction des détails de bas niveau )
Typage des variables
5
#1 Introduction & historique
2- Spécificités du langage
b- Simple à apprendre
© Reconvert
c- Concis
6
#1 Introduction & historique
7
#1 Introduction & historique
a- Performances d’exécution
Reconvert, Paris.
b- Distribution
© Reconvert
8
#1 Introduction & historique
b- Version 3.x
© Reconvert
Nota
9
#1 Introduction & historique
6. Administration système
On peut écrire :
7. Dans les Banques
- Scripts systèmes, admin serveurs
8. Scientifiques - Sites web : Django, Pyramid, etc.
- Programmes scientifiques, calcul
9. Géographie, etc. - Etc.
10
#1 Introduction & historique
7- Un programme minimal
Reconvert, Paris.
© Reconvert
11
#2 Installations : python & IDE
Travaux pratiques
12
#2 Installations : python & IDE
Editeurs
a- PyCharm [Link]
c- Notepad++ [Link]
© Reconvert
etc.
Shells
Linux (bash, etc.)
Cmd sous Windows
Console2 + module pyreadline + IPython
13
#2 Installations : python & IDE
c- Puis validez.
a- Créer c:\>stage\[Link] avec l’éditeur Notepad++ ou autre, avec print("Hello, World") dedans.
14
#2 Installations : python & IDE
15
#2 Installations : python & IDE
16
#2 Installations : python & IDE
Commandes PIP
Reconvert, Paris.
install : installer un module et l’ensemble de ses dépendances. Exemple : pip install requests
© Reconvert
17
#2 Installations : python & IDE
Travaux pratiques
d- Tester le fichier
18
#3 Opérations de base, vocabulaire
Travaux pratiques
1+3
3-1
-6
2*4
19
#3 Opérations de base, vocabulaire
3/2
© Reconvert
3//2
3.0
nombre = 125
nombre
mot = "Coucou"
mot
del mot
mot
20
#3 Opérations de base, vocabulaire
[Link]()
© Reconvert
[Link]()
x=3
print(x)
a-b/c
(a-b)/c
21
#3 Opérations de base, vocabulaire
m = max([4, 8, 9, 14, 12]) Le plus grand des nombres d’un tableau (liste)
22
#4 Structure d’un programme
stage
[Link] module
minus package
Reconvert, Paris.
__init__.py
© Reconvert
[Link] module
[Link]
[Link]
Importer les modules et les utiliser
23
#4 Structure d’un programme
b- utilisation
© Reconvert
24
#4 Structure d’un programme
– string : fournit des opérations courantes sur les chaînes de caractères (équivalentes aux
méthodes de la classe string plus quelques bonus) : [Link](’FOO’), puis upper(), capitalize(), capwords(),
strip(), expandtabs(). Il est généralement recommandé d’utiliser les méthodes disponibles sur les objets de
type string équivalentes.
25
#5 Types de données en Python
Travaux pratiques
Instruction Sortie Commentaire
a = 12
Reconvert, Paris.
type(a)
© Reconvert
b = 3.1
type(b)
isinstance(a,int) Un entier
isinstance(b,int)
isinstance(b,float) Un float
type(True) Un booléen
isinstance(True , bool)
26
#5 Types de données en Python
a 12
27
#6 Les types numériques
chiffre = -51
© Reconvert
chiffre
isinstance(chiffre, int)
isinstance("Hello", int)
2+2 L’addition
28
#6 Les types numériques
2*2 Multiplication
© Reconvert
chiffre
myint 15
29
#6 Les types numériques
2.0 2.0
© Reconvert
int(-1.5) -1
int(-3/2) -1
30
#6 Les types numériques
31
#7 Les chaines de caractères
chaine = "Hello, World" 'Hello, World' Ce n’est pas une modification de chaine : c’est
chaine un autre objet. L’objet chaine initial a disparu.
32
#7 Les chaines de caractères
La concaténation
phrase = "Hello" + "," + " " + "World" 'Hello, World' Nota : bcp d’allocation d’objets.
" " .join(("Bonjour", "la", "Terre")) 'Bonjour la Terre' + performant car peu d’allocations.
33
#7 Les chaines de caractères
34
#7 Les chaines de caractères
35
#7 Les chaines de caractères
36
#7 Les chaines de caractères
Indiquer le séparateur
Quelques utilisations
37
#7 Les chaines de caractères
renvoyée.
© Reconvert
Quelques utilisations
38
#7 Les chaines de caractères
str() :
Convertit en chaine.
Quelques utilisations
39
#7 Les chaines de caractères
Utiliser join()
Nota : la fonction join() ne s’applique qu’à une liste
de chaînes de caractères.
40
#7 Les chaines de caractères
strip(), expandtabs() :
gérer les espaces dans une chaîne en supprimant les blancs non significatifs ou en remplaçant les
tabulations par un nombre fixe d’espaces.
41
#7 Les chaines de caractères
42
#7 Les chaines de caractères
43
#7 Les chaines de caractères
44
#7 Les chaines de caractères
Légende
* : caractère de remplissage
45
#7 Les chaines de caractères
46
#7 Les chaines de caractères
47
#8 Les types booléens
1- Le type booléen
True True
© Reconvert
False False
type(True) bool
ok True
ok = bool(True)
ok True
48
#8 Les types booléens
Opérations booléennes
© Reconvert
qte = 15
qte == 15 True
49
#9 Le type None
1- Le type None
50
# 10 Les listes ou tableaux
3 -2 Jardin 2.0
Indice 0
51
# 10 Les listes ou tableaux
liste1 []
liste2 []
52
# 10 Les listes ou tableaux
valeur stockée
[Link](5)
[Link]('Bonjour')
[Link]('le monde')
liste3 []
53
# 10 Les listes ou tableaux
maliste [6, 6, 6, 6]
54
# 11 Les tuples (ou tableaux fixes)
tuple1 ()
55
# 11 Les tuples (ou tableaux fixes)
56
# 11 Les tuples (ou tableaux fixes)
57
# 12 Les sets ou ensembles
12 jardin
9 coucou
-5.3
Dé
58
# 12 Les sets ou ensembles
set()
ensemble
59
# 12 Les sets ou ensembles
[Link]("World")
{'Hello' , 1, 'World'} Unicité des éléments
ensemble3
préservée
ensemble4 = set("Hello" )
ensemble5 = set(15 )
60
# 12 Les sets ou ensembles
ensemble1 = {1, 2}
© Reconvert
ensemble2 = {5, 2}
ensemble {1, 2, 5}
ensemble3 {2}
ensemble4 {1}
61
# 13 Les dictionnaires
Clé
"fruit" "minus" "ville" "prix"
associative
62
# 13 Les dictionnaires
dict()
© Reconvert
63
# 13 Les dictionnaires
64
# 13 Les dictionnaires
65
# 14 Structures de décision et boucles
• Opérateurs : >, >=, <, <=, ==, !=, or, and, not, in "hello" in tx
© Reconvert
A B C A B C
True True True True True True
66
# 14 Structures de décision et boucles
Exemple
Instruction Sortie Commentaire
nom = input("Quel est votre nom? ") Quel est votre nom? Si on saisit Dupont
print(nom) Dupont
score = int(entree)
67
# 14 Structures de décision et boucles
if [condition1]:
© Reconvert
insts
elif [condition2]:
insts
elif [condition3]:
insts
else :
insts
Syntaxe
68
# 14 Structures de décision et boucles
if [condition1]:
© Reconvert
insts
elif [condition2]:
insts
elif [condition3]:
insts
else :
insts
Syntaxe
if imbriqué
69
# 14 Structures de décision et boucles
• Quasi identique à la boucle dans les plusieurs langages (PHP, Java, etc.)
initialiser
while [condition1]:
© Reconvert
inst1
inst2
inst3 modifier la condition
Syntaxe
Exemple
Nota
• Initialiser une variable pour entrer dans la boucle
• Attention aux boucles infinies (CTRL+C termine le programme)
• Utiles si on ne sait pas combien de fois boucler.
70
# 14 Structures de décision et boucles
Syntaxe
71
# 14 Structures de décision et boucles
Associé à range()
Reconvert, Paris.
72
# 14 Structures de décision et boucles
73
# 14 Structures de décision et boucles
74
# 15 Les fichiers en Python
75
# 15 Les fichiers en Python
Notion de curseur
a- un curseur est positionné en début du fichier.
b- read() déplacé le curseur jusqu’à la fin.
c- pour rembobiner, utiliser [Link](position)
d- obtenir la position du curseur: [Link]()
curseur
76
# 15 Les fichiers en Python
77
# 15 Les fichiers en Python
Code : écrire dans un fichier Code : écrire dans un fichier (boucle with)
Nota
a- avec la boucle with qui ferme automatiquement le fichier à lire/écrire.
b- Pour des fichiers binaires (word, excel, etc.) , utiliser des composants spécialisés.
78
# 15 Les fichiers en Python
79
# 15 Les fichiers en Python
80
# 16 Les fonctions en Python
def nomfonction(paramètres) :
inst1
inst2
.
.
instn
return quelquechose
Syntaxe
81
# 16 Les fonctions en Python
82
# 16 Les fonctions en Python
83
# 16 Les fonctions en Python
a- Paramètres positionnels
Tous les paramètres obligatoires (positionnels) indiqués dans la parenthèse doivent
être donnés au moment de l’appel, et dans le même ordre.
Reconvert, Paris.
© Reconvert
b- Paramètres nommés
Certains paramètres peuvent être nommés.
84
# 16 Les fonctions en Python
85
# 16 Les fonctions en Python
défaut
© Reconvert
KO : les paramètres
obligatoires d’abord
86
# 16 Les fonctions en Python
Arguments obligatoires
et nommés
87
# 16 Les fonctions en Python
Variables locales
On peut créer des variables au sein d’une fonction qui ne seront pas visibles à
l’extérieur de celle-ci ; on les appelle variables locales.
Reconvert, Paris.
variable globale
Variables locales
88
# 16 Les fonctions en Python
Fonction documentée
Reconvert, Paris.
print(direbonjour.__doc__) affichera la
doctring.
>>>help(direbonjour)
89
# 16 Les fonctions en Python
>>>help(len)
© Reconvert
>>>help(print)
90
# 16 Les fonctions en Python
help>
© Reconvert
Instruction Commentaire
int Aide sur les entiers
91
# 16 Les fonctions en Python
>>>import direbonjour
[Link]
>>>help(direbonjour)
© Reconvert
>>>import direbonjour
>>> [Link]("Jean", "Dutour"))
Bonjour Jean Dutour
Importer votre module Aide du module direbonjour
92
# 16 Les fonctions en Python
PYTHONPATH
Python récupère les modules importés en regardant dans la liste path du module sys
contenant tous les chemins d’importation possibles.
Reconvert, Paris.
>>>import sys
>>>[Link]
© Reconvert
>>>[Link](' /chemin/vers/le/dossier/de/votre/module')
93
# 16 Les fonctions en Python
Importance de l’itération
L'itération est très importante en Python.
On peut itérer sur n'importe quel itérable chaque fois que cela a un sens : liste, tuple,
set, str, …
Reconvert, Paris.
© Reconvert
>>>max([5,8,16])
16
>>>max((5,8,16))
16 La fonction max fonctionne pour ces 3
>>>max(set([5,8,16])) itérables
16
94
# 16 Les fonctions en Python
Exemples d’unpacking
>>>a >>>b
'Oui' 'Non'
© Reconvert
>>>b
'Non'
Récup de la liste Déballage de la liste
>>>(a, b, c) = range(3)
>>>a
0
>>>b
1
>>>c
Unpacking sur le 2
générateur range(.) Déballage du range()
95
# 16 Les fonctions en Python
Exemples d’unpacking
'm' >>>b
>>>b 'o'
© Reconvert
'o' >>>c
'l'
Récup des caractères Déballage chaine
>>>a, b, c = "mol"
>>>a
'm'
>>>b
'o'
>>>c
On omet les 'l'
parenthèses sur le Déballage chaine
tuple.
96
# 16 Les fonctions en Python
Exemples d’unpacking
>>>a, b, *c = range(4)
>>>a
Mettre * quand il y a trop de 0
Reconvert, Paris.
>>>b
choses à déballer par rapport au 1
© Reconvert
97
# 16 Les fonctions en Python
98
# 16 Les fonctions en Python
Retour d’un tuple sans unpacking Retour d’un tuple avec unpacking
99
# 16 Les fonctions en Python
Une liste en intension permet de générer des listes en compréhension (cf. maths -
ensemble en compréhension)
Reconvert, Paris.
© Reconvert
100
# 16 Les fonctions en Python
nombres = range(10)
carres = []
for x in nombres:
if x % 2 == 0:
[Link](x * x)
carres = [x * x for x in nombres if x % 2 == 0]
101
# 16 Les fonctions en Python
Liste en intension
© Reconvert
Dictionnaire en intension
102
# 17 Les décorateurs en Python
1- Créer un décorateur
Un décorateur est une fonction destinée à modifier le comportement d’une autre fonction.
On dit qu’elle décore la fonction en question (notion typiquement Python).
103
# 17 Les décorateurs en Python
104
# 18 Introduction aux générateurs
1- Un générateur
Le générateur est une « sorte de fonction » qui a un potentiel de générer des données. Ces
données ne sont pas générées immédiatement après la création du générateur.
Mécanisme de génération
Reconvert, Paris.
* Et ainsi de suite.
Créer un générateur
Deux moyens :
105
# 18 Introduction aux générateurs
Un générateur
106
# 18 Introduction aux générateurs
107
# 18 Introduction aux générateurs
108
# 18 Introduction aux générateurs
4- Générateur : intérêt
a- Générer des données à la demande
c – Optimisation de la mémoire
Reconvert, Paris.
© Reconvert
e- etc.
109
# 19 Fonctions lambda
1- Fonctions lambda
a- Ce sont des fonctions simples définies en ligne (inline)
110
# 19 Fonctions lambda
2- Fonctions lambda
Reconvert, Paris.
© Reconvert
111
# 20 Les exceptions
manipulés.
>>> 1/0 Division par 0 ZeroDivisionError Peut être une classe définie par
vous-même (voir POO).
>>> 2 + "15" Types
TypeError
incompatibles Générer une erreur
>>> var Nom de variable
NameError
inconnu
>>> liste = [] La liste ne contient
IndexError
>>> liste [0] rien
>>> d = {} Gérer l’erreur
>>> d={b:1} La clé 0 n’existe pas KeyError
>>> d{0} On dispose de plusieurs mots clés : try,
except, else, finally pour gérer les
Objets de type Exception erreurs.
112
# 20 Les exceptions
Division par 0
Lire l’objet
113
# 20 Les exceptions
114
# 21 La programmation orientée objet
On peut pour créer des classes rapidement pour le prototypage par exemple, avec le mot
clé pass. On ajoutera ensuite des attributs à la demande.
User
nom
Classe rapide
115
# 21 La programmation orientée objet
Vecteur
Reconvert, Paris.
+x
Fonction qui construit
© Reconvert
l’objet de ce type. +y
Diagramme
116
# 21 La programmation orientée objet
Vecteur
Reconvert, Paris.
+x
© Reconvert
+y
Diagramme
Un objet
Le destructeur
117
# 21 La programmation orientée objet
3- Surcharge d’opérateur
On peut vouloir additionner des objets (avec +), ou utiliser d’autres opérateurs
courants comme <, >, etc. On parle de surcharge d’opérateurs.
Reconvert, Paris.
© Reconvert
Instanciation
118
# 21 La programmation orientée objet
4- L’héritage simple
Une classe fille peut hériter d’une classe mère. Elle récupère les données et
comportement de la mère.
Animal
Reconvert, Paris.
__init__()
© Reconvert
Felin
__init__()
Chat
__init__()
119
# 21 La programmation orientée objet
4- L’héritage multiple
Une classe fille peut hériter de plus d’une classe mère : héritage multiple (en losange).
Utile parfois, très utilisé dans Django. Dans d’autres langages on utilise les interfaces.
Animal
Reconvert, Paris.
__init__()
© Reconvert
Felin Domestique
__init__() __init__()
Chat
__init__()
Diagramme
Le chat est animal qui est un
félin domestique
Classes avec héritage multiple
120
# 21 La programmation orientée objet
Vecteur
Reconvert, Paris.
+ getX()
+ setX()
Diagramme
Instanciation
121
# 21 La programmation orientée objet
Aspect statique
122
# 21 La programmation orientée objet
Utiliser pass dans les méthodes qui doivent être redéfinies dans la classe fille.
Reconvert, Paris.
123
Programmation
Utiliser
Reconvert, Paris.
avec Python
124
Les points abordés
125
#1 Utiliser une base SQLite
a- Créer un fichier
[Link]
Reconvert, Paris.
126
#1 Utiliser une base SQLite
[Link]
127
#1 Utiliser une base SQLite
[Link]
128
#2 Utiliser une base MySQL
4- TP 4 : Utiliser MySQL
Pour une connexion avec une base C/S de type MySQL, on peut utiliser soit un connecteur
MySQL pour Python (Python 3.4), soit une librairie tierce comme pymysql.
pymysql
129
#2 Utiliser une base MySQL
b- Afficher la sélection
dans un outil MySQL
Reconvert, Paris.
© Reconvert
[Link]
130