Programmation Python
Qu’est-ce que le langage python ?
Python est un langage de programmation sous licence libre
promu par la Python Software Foundation. Il fonctionne sur la plu-
part des systèmes d’exploitation et fait partie des langages les plus
utilisés pour apprendre la programmation. Il inclut l’environnement
de développement IDLE, qui vise à faciliter la programmation en
Python. Les programmes Python sont placés dans des fichiers d’ex-
tension ≪ .py ≫.
Ahmed SEJAD [Link]@[Link] Programmation Python 2/68
Programmation Python
Avant de commencer
Pour commencer à programmer avec Python, il vous faut un
interpréteur du code et pour le télécharger rendez-vous sur le site of-
ficiel de Python ([Link] et cliquez sur Down-
loads.
Après avoir télécharger la version compatible avec votre système
d’exploitation lancez l’installation.
Ahmed SEJAD [Link]@[Link] Programmation Python 3/68
Programmation Python
Avant de commencer
Pour programmer avec Python vous avez deux modes d’exécution :
Utiliser l’interpréteur Python (IDLE).
Exemple :
Écrire un programme dans un fichier puis l’exécuter via CMD.
Exemple :
Ahmed SEJAD [Link]@[Link] Programmation Python 4/68
Programmation Python
Avant de commencer
Au cours de ce chapitre nous allons travailler avec un environne-
ment de développement intégré (IDE) appelé PyCharm.
PyCharm développé par l’entreprise tchèque JetBrains, c’est un lo-
giciel multi-plateforme qui fonctionne sous Windows, Mac OS et Li-
nux. Il est décliné en édition professionnelle, diffusé sous licence pro-
priétaire, et en édition communautaire diffusé sous licence Apache.
Afin de télécharger Pycharm rendez-vous sur :
([Link]
Ahmed SEJAD [Link]@[Link] Programmation Python 5/68
Programmation Python
1. Les variables
En Python, la déclaration d’une variable et son initialisation
(c’est-à-dire la première valeur que l’on va stocker dedans) se font
en même temps.
Exemple :
Ligne 1. Dans cet exemple, nous avons déclaré, puis initialisé la variable x avec la valeur
2. Notez bien qu’en réalité, il s’est passé plusieurs choses :
Python a ≪ deviné ≫ que la variable était un entier. On dit que Python est un
langage au typage dynamique et pour savoir le type de x on tape type(x).
Python a alloué (réservé) l’espace en mémoire pour y accueillir un entier. Python
a aussi fait en sorte qu’on puisse retrouver la variable sous son nom x.
Enfin, Python a assigné la valeur 2 à la variable x.
Remarque :
Certaines règles doivent être respectées pour nommer les variables et les fonctions :
Le nom d’une variable doit obligatoirement commencer par une lettre suivie d’une
suite de lettres et de chiffres, il ne doit pas contenir d’espace.
noms interdits : ce qui a déjà été utilisé, ainsi que les mots réservés et les fonctions
prédéfinies de Python.
Ahmed SEJAD [Link]@[Link] Programmation Python 6/68
Programmation Python
2. Les opérateurs en python
Les opérateurs arithmétiques :
Les opérateurs arithmétiques utilisent des valeurs numériques (va-
riables ou expressions) comme opérandes et renvoient une valeur
numérique.
Expression Description Opérateur
X+Y Addition +
X-Y Soustraction -
X*Y Multiplication *
X//Y Division entière //
X/Y Division /
X%Y Modulo (le reste de la division ) %
X ** Y Puissance **
Remarque :
Certains opérateurs peuvent avoir des comportements différents en fonction des types
d’opérandes sur lesquels ils agissent, par exemple l’opérateur ”+” additionne des
nombres, mais concatène des chaines de caractères.
Ahmed SEJAD [Link]@[Link] Programmation Python 7/68
Programmation Python
2. Les opérateurs en python
Les opérateurs de comparaison :
Tout comme les opérateurs logiques, les opérateurs de comparaison
renvoient une valeur booléenne “True” ou “False”. Les opérateurs
de comparaisons s’appliquent sur tous les types de base.
Expression Description Opérateur
X<Y Inférieur <
X <= Y Inférieur ou égal >=
X>Y Supérieur >
X >= Y Supérieur ou égal >=
X == Y Égal (attention !) ==
X != Y Différent !=
Pour réunir des expressions booléennes :
X and Y , le ET logique
X or Y , le OU logique
Not X , le NON logique
Ahmed SEJAD [Link]@[Link] Programmation Python 8/68
Programmation Python
2. Les opérateurs en python
Les opérateurs d’affectation :
L’affectation est l’instruction qui associe une valeur à une variable.
Elle est symbolisée en python par le signe ”=”.
Les expressions dans le tableau ci-dessous prennent toujours en consi-
dération l’ancienne valeur de X et le résultat sera la nouvelle valeur
de X.
Expression Équivalent Description Opérateur
X=1 X=1 Affecte 1 à la variable X =
X += 1 X=X+1 Incrémente X de 1 +=
X -= 1 X=X-1 Décrémente X de 1 -=
X *= 2 X=X*2 Multiplie X par 2 *=
X /= 2 X=X/2 Divise X par 2 /=
X //= 2 X = X // 2 la division entière de X par 2 //=
X **= 4 X = X ** 4 X à la puissance 4 **=
X %= 2 X=X%2 le reste de la division entière de X par 2 %=
Ahmed SEJAD [Link]@[Link] Programmation Python 9/68
Programmation Python
3. Les instructions entrées/sorties
Écrire sur la sortie standard :
La fonction print() accepte un nombre arbitraire d’expressions.
Elle affichera chacune d’elles dans l’ordre, séparées par un es-
pace. La dernière valeur est suivie d’une retour à la ligne.
Exemple :
Résultat :
Ahmed SEJAD [Link]@[Link] Programmation Python 10/68
Programmation Python
3. Les instructions entrées/sorties
Lire au clavier :
Pour avoir un programme intéractif, nous allons utiliser la fonc-
tion input(). Elle affiche une invite (chaı̂ne de caractères qui
lui est fournie en paramètre) et récupère les caractères saisis
au clavier par l’utilisateur. Cette fonction renvoie la chaı̂ne de
caractères contenant les caractères saisis par l’utilisateur. Si
une information d’un type particulier est attendu (un entier par
exemple), nous utiliserons les opérations de conversion de type.
Exemple :
Résultat :
Ahmed SEJAD [Link]@[Link] Programmation Python 11/68
Programmation Python
4. Blocs d’instructions
Certaines instructions sont regroupées en blocs de la façon suivante :
l’entête du bloc peut être (un test, une boucle, une fonction....),
d’ou vient l’importante notion de l’indentation en Python.
L’indentation (le décalage) se fait avec la touche tabulation ou es-
pace, avec ce décalage on peut insérer un bloc dans un bloc, dans
un bloc......
L’indentation fait partie du langage Python, changer l’indentation
change la signification du programme
Ahmed SEJAD [Link]@[Link] Programmation Python 12/68
Programmation Python
5. Les structures conditionnelles (tests)
La structure if :
La forme la plus simple est de if :
Syntaxe :
if expression :
instruction 1 du if
instruction .....
suite
Exemple :
Expression est une expression qui renvoie un booléen, qui est donc évaluée à True
ou False.
Les instructions du bloc du if sont effectuées uniquement si l’expression est évaluée
à True.
Dans tous les cas, le programme reprend à l’instruction après if.
Ahmed SEJAD [Link]@[Link] Programmation Python 13/68
Programmation Python
5. Les structures conditionnelles (tests)
La structure if.... else :
On utilise généralement cette structure si nous avons seulement deux
cas à traiter :
Syntaxe :
if expression :
bloc d’instructions du if
else :
bloc d’instructions du else
Exemple :
Ahmed SEJAD [Link]@[Link] Programmation Python 14/68
Programmation Python
5. Les structures conditionnelles (tests)
La structure if.... elif .... else :
Si le nombre des cas à tester dépasse deux, nous faisons appel à
cette structure pour faire le nécessaire :
Syntaxe :
if expression1 :
bloc d’instructions du if
elif expression2 :
bloc d’instructions du elif
.....
else :
bloc d’instructions du else
Exemple :
Ahmed SEJAD [Link]@[Link] Programmation Python 15/68
Programmation Python
6. Les boucles
En programmation, on est souvent amené à répéter plusieurs fois
une instruction, les boucles vont nous aider à réaliser cette tâche de
manière compacte et efficace.
En python nous avons deux types de boucle :
Boucle bornée
Quand on sait combien de fois doit avoir lieu la répétition, on
utilise généralement une boucle for.
Boucle non bornée
Si on ne connait pas à l’avance le nombre de répétitions, on
choisit une boucle while.
Ahmed SEJAD [Link]@[Link] Programmation Python 16/68
Programmation Python
6. Les boucles
Boucle for :
Syntaxe :
for i in ensemble :
bloc d’instructions
Où i est un élément de l’ensemble ensemble. Le bloc instructions
est exécuté pour chaque élément i de l’ensemble ensemble. Cet en-
semble peut être une chaı̂ne de caractères, un tuple, une liste, un
dictionnaire....
La boucle la plus répandue est celle qui parcourt des indices entiers
compris entre 0 et n-1. On utilise pour cela la boucle for et la fonc-
tion range comme dans l’exemple qui suit où nous voulons afficher
”Bonjour” dix fois :
Exemple :
Ahmed SEJAD [Link]@[Link] Programmation Python 17/68
Programmation Python
6. Les boucles
Fonction range() dans la boucle for :
Il y a trois versions d’utilisation de cette fonctions :
Type n°1 : pas par défaut =1 :
Exemple :
Résultat :
Ahmed SEJAD [Link]@[Link] Programmation Python 18/68
Programmation Python
6. Les boucles
Fonction range() dans la boucle for :
Type n°2 : pas par défaut =1 :
Exemple :
Résultat :
Ahmed SEJAD [Link]@[Link] Programmation Python 19/68
Programmation Python
6. Les boucles
Fonction range() dans la boucle for :
Type n°3 : pas est donné :
Exemple :
Résultat :
Ahmed SEJAD [Link]@[Link] Programmation Python 20/68
Programmation Python
6. Les boucles
Boucle while :
Syntaxe :
while expression :
bloc d’instructions
Où expression est une condition qui détermine la poursuite de la
répétition des instructions incluses dans la boucle. Tant que celle-ci
est vraie, le bloc d’instructions est exécuté.
Tout comme les tests, l’indentation joue un rôle important. Le décalage
des lignes d’un cran vers la droite par rapport à l’instruction while
permet de les inclure dans la boucle.
Exemple : nous voulons afficher ”Bonjour” dix fois
Ahmed SEJAD [Link]@[Link] Programmation Python 21/68
Programmation Python
7. Les listes
Une liste est une structure de données qui contient une série de va-
leurs. Python autorise la construction de liste contenant des valeurs
de types différents (par exemple entier et chaı̂ne de caractères), ce
qui leur confère une grande flexibilité.
Une liste est déclarée par une série de valeurs (n’oubliez pas les
guillemets, simples ou doubles, s’il s’agit de chaı̂nes de caractères)
séparées par des virgules, et le tout encadré par des crochets.
Exemples :
Lorsque l’on affiche une liste, Python la restitue telle qu’elle a été
saisie, en tapant print(animaux) par exemple on aura :
Ahmed SEJAD [Link]@[Link] Programmation Python 22/68
Programmation Python
7. Les listes
Manipulation de listes :
On peut accéder aux éléments d’une liste en utilisant leurs position
(indices), sachant que les indices en python commencent de 0 jus-
qu’au n-1 pour une liste de n éléments.
Exemple :
Résultat :
Ahmed SEJAD [Link]@[Link] Programmation Python 23/68
Programmation Python
7. Les listes
Manipulation de listes :
On peut aussi accéder aux éléments par indexation négative. Le
dernier élément de la liste est alors numéroté -1. Avec la liste de
l’exemple précédent, on obtient par exemple :
Exemple :
Résultat :
Exemple :
Résultat :
Ahmed SEJAD [Link]@[Link] Programmation Python 24/68
Programmation Python
7. Les listes
Opération sur les listes :
Tout comme les chaı̂nes de caractères, les listes supportent l’opérateur
+ de concaténation, ainsi que l’opérateur * pour la duplication.
Exemple :
Résultat :
Ahmed SEJAD [Link]@[Link] Programmation Python 25/68
Programmation Python
7. Les listes
Opération sur les listes :
Les listes possèdent de nombreuses fonctions qui leur sont propres et
qui peuvent se révéler très pratiques comme (append, insert, len....).
Fonction append() :
La fonction append() ajoute un élément à la fin d’une liste :
Exemple :
Résultat :
Ahmed SEJAD [Link]@[Link] Programmation Python 26/68
Programmation Python
7. Les listes
Opération sur les listes :
Fonction insert() :
La fonction insert() insère un objet dans une liste avec un indice
déterminé :
Exemple :
Résultat :
Ahmed SEJAD [Link]@[Link] Programmation Python 27/68
Programmation Python
7. Les listes
Opération sur les listes :
Fonction len() :
L’instruction len() vous permet de connaı̂tre la longueur d’une liste,
c’est-à-dire le nombre d’éléments que contient la liste.
Exemple :
Résultat :
Remarque :
Les chaı̂nes de caractères peuvent être considérées comme des listes (de caractères) un
peu particulières :
Exemple :
animaux = ”girafe tigre”
print(animaux) ===> ’girafe tigre’, pas de crochets.
animaux[3] ===> ’a’
Ahmed SEJAD [Link]@[Link] Programmation Python 28/68
Programmation Python
7. Les listes
Opération sur les listes : Slicing
Il s’agit simplement de l’extraction d’une tranche de la liste, en
précisant un indice initial et un indice final. On peut définir un pas
p, ce qui permet de n’extraire qu’un terme sur p (par exemple les
termes d’indice pair ou impair en prenant p = 2)
Si le premier indice est omis, il est pris égal à 0 par défaut.
Si le deuxième indice est omis, il est pris égal à la longueur de
la liste par défaut (on extrait la tranche finale)
Si le troisième indice est omis, il est pris égal à 1 par défaut
(cas de la première instruction ci-dessus)
Un pas négatif permet d’inverser l’ordre des termes
Le slicing est possible aussi avec des indexations négatives.
Ahmed SEJAD [Link]@[Link] Programmation Python 29/68
Programmation Python
7. Les listes
Exemple :
Ahmed SEJAD [Link]@[Link] Programmation Python 30/68
Programmation Python
8. Les Dictionnaires
Dans l’exemple précédent, En premier on définit un dictionnaire vide
avec les accolades (tout comme on peut le faire pour les listes avec
[]). Ensuite, on remplit le dictionnaire avec différentes clés (”Nume-
rique”,”Stat”, ”energie”) auxquelles on affecte des valeurs (”SUP-
NUM”,”ISMS”, ”ISME”). Vous pouvez mettre autant de clés que
vous voulez dans un dictionnaire (tout comme vous pouvez ajouter
autant d’éléments que vous voulez dans une liste).
Pour récupérer la valeur associée à une clé donnée, il suffit d’utiliser
la syntaxe suivante dictionnaire[”cle”].
Exemple :
Résultat :
Ahmed SEJAD [Link]@[Link] Programmation Python 31/68
Programmation Python
8. Les Dictionnaires
Les dictionnaires se révèlent très pratiques lorsque vous devez mani-
puler des structures complexes à décrire et que les listes présentent
leurs limites. Les dictionnaires sont des collections non ordonnées
d’objets, c’est-à-dire qu’il n’y a pas de notion d’ordre (i.e. pas d’in-
dice). On accède aux valeurs d’un dictionnaire par des clés. Ceci
semble un peu confus ? Regardez l’exemple suivant.
Exemple :
Résultat :
Ahmed SEJAD [Link]@[Link] Programmation Python 32/68
Programmation Python
9. Les fonctions
En programmation, les fonctions sont très utiles pour réaliser plu-
sieurs fois la même opération au sein d’un programme. Elles rendent
également le code plus lisible et plus clair en le fractionnant en blocs
logiques.
Exemple : si vous appelez la fonction len() de la manière suivante.
Résultat :
Voici ce qui se passe :
vous appelez ”len()” en lui passant une liste en argument (ici la liste [0, 1, 2]) ;
la fonction calcule la longueur de cette liste ;
elle vous renvoie un entier égal à cette longueur (stocké dans la variable long).
Ahmed SEJAD [Link]@[Link] Programmation Python 33/68
Programmation Python
9. Les fonctions
Définition
Pour définir une fonction, Python utilise le mot-clé def. Si on sou-
haite que la fonction renvoie quelque chose, il faut utiliser le mot-clé
return.
Exemple :
Notez que la syntaxe de def utilise les deux-points comme les boucles for et while ainsi
que les tests if, un bloc d’instructions est donc attendu. De même que pour les boucles
et les tests, l’indentation de ce bloc d’instructions (qu’on appelle le corps de la fonction)
est obligatoire.
Dans l’exemple précédent, nous avons passé un argument à la fonction carre() qui nous
a renvoyé (ou retourné) une valeur que nous avons immédiatement affichée à l’écran
avec l’instruction print(). Que veut dire valeur renvoyée ? Et bien cela signifie que cette
dernière est récupérable dans une variable.
Ahmed SEJAD [Link]@[Link] Programmation Python 34/68
Programmation Python
9. Les fonctions
Notez qu’une fonction ne prend pas forcément un argument et ne
renvoie pas forcément une valeur.
Exemple :
Dans ce cas la fonction, hello() affiche la chaı̂ne de caractères ”Bon-
jour SUPNUM”. Elle ne prend aucun argument et ne renvoie rien.
Passage d’arguments
Le nombre d’arguments que l’on peut passer à une fonction est
variable. Le nombre d’argument est donc laissé libre à l’initiative du
programmeur qui développe une nouvelle fonction.
Exemple : Vu que le typage est dynamique c’est pas la peine de
mettre les types des arguments.
Ahmed SEJAD [Link]@[Link] Programmation Python 35/68
Programmation Python
9. Les fonctions
Fonction récursive :
Une fonction récursive est une fonction qui s’appelle elle-même.
Exemple :
Résultat :
Ahmed SEJAD [Link]@[Link] Programmation Python 36/68
Programmation Python
10. Modules et packages
Les modules sont des programmes Python qui contiennent des fonc-
tions que l’on est amené à réutiliser souvent (on les appelle aussi
bibliothèques ou libraries). Ce sont des ≪ boı̂tes à outils ≫ qui vont
vous être très utiles.
Les développeurs de Python ont mis au point de nombreux modules
qui effectuent une quantité phénoménale de tâches. Pour cette rai-
son, prenez toujours le réflexe de vérifier si une partie du code que
vous souhaitez écrire n’existe pas déjà sous forme de module.
La plupart de ces modules sont déjà installés dans les versions stan-
dards de Python. Vous pouvez accéder à une documentation ex-
haustive sur le site de Python ([Link]
[Link]). N’hésitez pas à explorer un peu ce site, la
quantité de modules disponibles est impressionnante (plus de 300).
Ahmed SEJAD [Link]@[Link] Programmation Python 37/68
Programmation Python
10. Modules et packages
Par exemple le module math est un module standard en Python,
toujours disponible (c’est pas la peine de le télécharger). Pour utiliser
des fonctions mathématiques sous ce module, vous devez importer
le module en utilisant import math.
Exemple :
Résultat :
Voici quelques modules inclus dans la version standard de Python :
random : fonctions permettant de travailler avec des valeurs aléatoires
sys : fonctions systèmes
os : fonctions permettant d’interagir avec le système d’exploitation
time : fonctions permettant de travailler avec le temps
Ahmed SEJAD [Link]@[Link] Programmation Python 38/68
Programmation Python
10. Modules et packages
Quand on a un grand nombre de modules, il peut être intéressant de les organiser dans
des dossiers. Un dossier qui rassemble des modules est appelé un package (paquetage
en français). Le nom du package est le même que celui du dossier. Par exemple, on crée
un dossier package1 dans lequel on place le fichier [Link].
Pour importer les modules qui ne sont pas inclus dans la version standard de Python on
utilise la commande ( pip install nom du module) afin de les télécharger puis on utlise
import...
Exemples sur le téléchargement est l’installation des packages dont on aura besoin dans
ce cours :
Ahmed SEJAD [Link]@[Link] Programmation Python 39/68