Le langage de
programmation Python
Présenté par : Nizar GANNOUNI
Manouba &
Zaghouan
Septembre
1 2019
Plan
Introduction
Editeurs et configuration
Les structures de données
Les structures simples
Les structures conditionnelles
Les structures répétitives
2
Introduction
Python :
• Développé par le néerlandais Guido van Rossum en 1989.
• Portable (Windows, Linux, Mac OS ...).
• Langage de programmation orientée objet.
• Doté d’un typage dynamique fort.
• Sensible à la casse.
• Open source en évolution et soutenu par une communauté
d’utilisateurs.
3
• Doté d’une bibliothèque très puissante.
Editeurs
1-Editeurs offline:
IDEL python : [Link]
Mu : [Link]
PyCharm : [Link]
…
2- Editeurs online:
[Link]
[Link]
[Link]
4
Configuration
Variable d’environnement Windows7:
Ajouter à la variable le chemin
d’installation du python précédé par
";"
5
Configuration
Variable d’environnement Windows 10:
6
Introduction
Les modes d’exécution d’un script Python avec IDEL :
1- en mode interpréteur interactif
2- en mode fichier
3- en ligne via :
[Link]
[Link] 7
[Link]
L’environnement en ligne : [Link]
Versioning
Ru Ouverture
n
8
L’environnement ‘[Link]’ permet de visualiser l’exécution pas à
pas (voir démo)
9
Découverte de l’IDLE Python
1) Afficher le jour, le mois et l’année de la date système
2) Afficher les bibliothèques et les packages installés help ("modules")
3) Afficher l’aide de la bibliothèque "sys" help (sys) erreur
4) Importer la bibliothèque "sys" import sys ou from sys import *
5) Afficher l’aide de la bibliothèque "sys" help (sys) dir (sys)
6) Afficher la version du langage python installée [Link]
1) Afficher le jour, le mois et l’année de la date système from datetime import * [Link]
xx=[Link]()10 [Link]
[Link]
Installation de nouvelles
bibliothèques
1) Installer la bibliothèque numpy (dans le cas où le compilateur python est
déclaré dans la variable d’environnement du pc )
1 - Accéder à l’invite de commandes du windows : cmd
2- accéder au dossier d’installation du python
3- pip install numpy
Installation de nouvelles
bibliothèques
2) Installer la bibliothèque numpy (dans le cas où le compilateur python n’est pas déclaré dans la
variable d’environnement du pc )
Accéder à l’invite de commandes du windows : cmd
accéder au dossier d’installation du python
python –m pip install numpy
Les structures de
données
13
Les structures de
Les constantes :
Exemples :
données
1- import sys
[Link]
[Link] = [Link] * 2
[Link]
2- import math
[Link]
[Link] = 21
[Link] 14
Python ne tient pas compte des constantes
Les structures de
données
Les variables : (lettres, chiffres et underscore (_) (ne commence pas par un chiffre))
[Link] dynamique
[Link] dynamique fort
Lorsqu’une valeur est affectée à une variable, le langage met à la disposition du développeur
l’ensemble des fonctions (méthodes) appropriées à ce type.
type (nomVariable)
dir (nomVariable)
On ne parle pas de type de données mais plutôt de classe 15
Les structures de
données
B- Les types de données standards (en Python)
Les nombres (entiers, longs, réels, complexes, octal, hexadécimal)
1°) Exécutez le script suivant :
>>> a, b= 3, 2
>>> a,b
2°) Exécutez le script suivant :
>>> a, b= 3, 2
>>> a,b=b,a
>>> a, b
3°) Exécutez le script suivant :
>>> type(a) et >>> dir(a)
4°) Exécutez les scripts suivant :
>>> 2 + 3 * 8 – 6 / 4 +3 16
>>> 0o10 (zéro ‘o’ puis 10) et 0xA
Les structures de
données
B- Les types de données standards (en Python)
Les chaînes de caractères : Suite de caractères indexée à partir de Zéro.
Exemples :
1) Exécuter les affectations suivantes et afficher le contenu de la
variable
ch='abc'
ch="abc"
ch="l\’informatique "
Ch="Formation\nPython "
print….
17
type(ch) dir(ch) help([Link])
Les structures de
données
B- Les types de données standards (en Python)
Remarque : Les chaînes de caractères sont indexées sous les deux formats suivants :
ch= P y t h o n
Index: 0 1 2 3 4 5
Index: -6 -5 -4 -3 -2 -1
Exécuter les instructions suivantes et déduire le rôle de chacune :
ch[0] ; ch[-6] ;
ch[1:4] ; ch[2:] ; ch[1:-2]
ch[:2]
ch*2
ch[::2] ; ch[::-1]
18
ch[2] = ‘T'
les chaînes sont immuables
Les structures de
données
B- Les types de données standards (en Python)
Les listes : Collection d’éléments séparés par des virgules, l’ensemble étant enfermé
dans des crochets.
Exemples :
1) Exécuter les affectations suivantes et afficher le contenu des variables
jour = ['lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi',
'dimanche']
liste1=['abc’ , 1 , 2.3 , 2>3 ]
2) Afficher le 2ème élément de la liste jour
3) Afficher le dernier élément de la liste jour
4) Extraire la partie de la liste jour allant du 2ème élément jusqu’au 4ème
élément
5) Afficher le dernier élément de la liste liste1
6) Remplacer le 3ème élément de liste1 par la valeur .001 19
Les structures de
données
B- Les types de données standards (en Python)
Les tuples: Collection d’éléments séparés par des virgules, l’ensemble étant enfermé
dans des parenthèses. Les tuples sont des listes en lecture seule.
Exemples :
jour = ('lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi',
'dimanche')
Liste1=('abc’ , 1 , 2.3 , 2>3 )
Les dictionnaires : Ce sont des objets pouvant contenir d'autres. C’est un genre de tableau
associatif.
20
Exemple : abc= {'nom': 'Ahmed','code':6734, 'Situation': 'Titulaire'}
Les structures de
données
1°) Les opérateurs arithmétiques sur les
nombres :
Symbole Description Exemple
+ addition 5+3 8
- soustraction 5-3 2
* multiplication 5*3 15
division (entière ou réelle en fonction du type de
/ 5/3 1 ou bien 5.1/3 1.7
donnée)
** élévation à la puissance 5**3 125
// division entière 5//3 1
% reste de la division entière 5%321 2
divmod divmod(14,3)
Les structures de
données
2°) Les opérateurs logiques sur les nombres :
Symbol
Description Exemple
e
> supérieur 5>3 True
supérieur ou
>= 5>=8 False
égal
< inférieur 5<3 False
<= Inférieur ou égal 4<=6 True
== égal 6==3 False
!= différent 5!=3 True
2 in [1,15,23,14]
‘a’ in [‘b’,’a’,’t’]
in inclusion
‘r’ in ‘Bonjour’
‘on’ in ‘Bonjour’ 22
a=5
<…<
Les structures de
données
2°) Les fonctions prédéfinies sur les nombres :
Les fonctions prédéfinies sont regroupées dans des bibliothèques qu’on doit les
importer avant leurs utilisations.
import nomBiblio
ou
from nomBiblio import *
Exemple : La bibliothèque math contient les fonctions mathématiques : sinus,
cosinus, racine carrée, etc.
Travail à faire :
1) Importer la bibliothèque math et afficher son contenu
2) Afficher l’aide de la fonction sin 23
Les structures de
données
3°) Les fonctions prédéfinies sur les chaînes :
Le langage Python dispose d’une classe str qui contient un ensemble de "fonctions"
manipulant les chaines de caractères qu’on pourra les découvrir à travers dir(str).
Travail à faire :
1) Exécuter l’instruction >>> dir(str) et visualiser le contenu de la class str
24
Les structures de
données
3°) Les fonctions prédéfinies sur les chaînes :
1) ‘Bon’+’jour’ Concat
2) 2*‘pa‘ duplication
2) len(‘Lycée’) long
3) 'Baccalauréat'[5:12] sous-chaine
4) 'Baccalauréat'.find('Bac')pos
5) v=v[:7]+v[10:] efface
6) v=v[ :7]+ ’tte’+v[ 7 :] insert
7) ch1=str(2016) convch
8) d=int(’165’) valeur 25
9) d=float(’16.5’) valeur
Les structures de
données
NB : Le langage Python traite aussi le type char via les fonctions
suivantes :
Algorithmique Code en Rôle Exemples
python
ORD (c) ord (c) Le code Ascii du char c ord (‘A’)65
CHR (n) chr (n) Le caractère dont le code Ascii est chr (65)’A’
n
Majus(c) [Link]() Majuscule du char c (chaîne) ‘a’.upper()’A’
Minuscule(c) [Link]() Minuscule du char c (chaîne) ‘A’.lower()’a’
‘ali’.upper()
‘BONJOUR’.lower()
26
Les structures de
données
3°) Les fonctions prédéfinies sur les listes :
Pour afficher les méthodes appropriées à une liste ainsi que la documentation disponible on
utilise les instructions dir(liste) et help(liste.méthodes).
Ctrl + Espace ou tabulation affiche la liste des méthodes disponibles
Une liste peut être traitée comme étant un tableau
Travail à faire :
Soit la liste jour = ['lundi', 'mardi', 'jeudi', 'vendredi', 'samedi']
1) Afficher la taille de la liste jour
2) Ajouter un élément (’dimanche’) à la fin de la liste jour
3) Insérer un élément (’mercredi’) à la position (3) dans la liste jour
4) Changer le 3ème élément par ‘lundi’
27
5) Trouver l’index de la 1ère occurrence de l’élément ’lundi’ dans la liste jour
6) Compter le nombre d’occurrence de l’élément ’lundi’ dans la liste
Les structures de
1-len(jour)
données
[Link](‘dimanche’)
[Link](2,’mercredi’)
4-jour[2]=‘lundi’
[Link](‘lundi’)
[Link](‘lundi’)
28
Les structures de
données
3°) Les fonctions prédéfinies sur les listes :
6) Effacer le dernier élément de la liste jour
7) Effacer l’élément à la position p (3) dans la liste jour
8) Effacer un élément (’dimanche’) de la liste jour
9) Trier les éléments de la liste jour
10)Remplir une nouvelle liste par 5 zéro
11)Remplir une nouvelle liste par les entiers consécutifs de 5 à 10
12)Remplir une nouvelle liste par les entiers consécutifs de 5 à 20 avec un pas égale à 3
13)Remplir une nouvelle liste par 10 entiers aléatoires inférieurs à 20
29
14)Remplir une liste par 10 lettres alphabétiques majuscules aléatoires
Les structures de
données
3°) Les fonctions prédéfinies sur les listes :
[Link] ou bien del jour[-1]
[Link](2) ou bien del jour[2] ou bien [Link](jour[2])
[Link](‘dimanche’)
[Link]()
10-liste2=[0]*5 ou 5*[0]
11-l=list(range(5)) // list(range(5,11)) ou bien L = [i for i in range (5,11)]
12-list(range(5,20,3))
13-import random
>>> liste1= [ [Link](20) for i in range (10) ]
14-des lettres aléatoires
liste1= [ chr(65+[Link](26)) for i in range (10) ] 30
Les actions
élémentaires
simples
31
Les actions simples
1°) L’affectation : Syntaxe Syntaxe Python
algorithmique
A 5 A=5
2°) L’opération d’entrée :
Syntaxe algorithmique Syntaxe Python
Lire (variable) Variable=input(’message ’)
Lire (var1,var2,var3) liste=input(’message ’)
NB : La valeur saisie avec input est de type chaîne de caractères
Activité :
Donner les instructions en langage Python permettant la saisie du
nom, de l’âge et de la moyenne annuelle d’un élève.
32
Les actions simples
3°) L’opération de sortie :
Syntaxe algorithmique Syntaxe Python
Afficher (nom_variable) print(nom_variable)
Afficher ("message") print("message")
Afficher print("message",nom_variable)
("message",nom_variable) Print("message" + nom_variable)
print("message
{o}".format(nom_variable))
Afficher (Expression) print (Expression)
Exemples :
print ("bonjour {0} et {1}".format("ali", "salah"))
dc = 11
ds = 12.25 33
print ("La note du dc = {0} , celle du ds = {1} et la moyenne = {2}" .format(dc,ds,
Les actions simples
3°) L’opération de sortie :
Formatage de l'affichage des chaines : Un texte imprimé en python peut être formaté
selon plusieurs méthodes dont nous citons :
Méthode1: opérateurs de concaténation
soient : a=4 et b=3.26 exécuter les instructions suivantes et déduire le rôle de chacune
• print(a,b,a*b)
• print(a,b,a*b, sep=" ; ")
• print( str(a) +" ; "+str(b) +" ; "+str(a*b))
Méthode2: l’ancienne printf du langage C
soient : a=4 et b=3.26 exécuter l’instruction suivante et en déduire le rôle
• print (" a= %d , b=%f et le produit = %6.2f" % (a,b,a*b)) 34
On peut avoir aussi d’autres indicateurs tels que :
%o (octale) %u (décimale) %x (hexadécimale) %c (caractère) %s (chaîne)
Les actions simples
3°) L’opération de sortie :
Formatage de l'affichage des chaines :
Méthode3: Méthode Pythonique basée sur la méthode format
soient : a=4 et b=3.26, exécuter l’instruction suivante et en déduire le rôle
• print(" a= {0} , b={1:f} et le produit = {2:6.2f}".format(a,b,a*b))
Interprétations:
Le tuple (a,b,a*b) désigne la liste des valeurs à afficher
{0} désigne le 1er élément dans la liste des valeurs
{1:f} désigne le 2ème élément dans la liste des valeurs et il est de type
réel
{2:6.2f} désigne :
2 l’indice dans la liste des valeurs (3ème valeur)
: séparateur
6 désigne la taille de l’affichage ( 6 caractères)
. Séparateur décimal 35
2 désigne le nombre de chiffres après la virgule
Les actions simples
3°) L’opération de sortie :
Formatage de l'affichage des chaines :
Exécuter les instructions suivantes et déduire le rôle de chacune:
print(‘abc’ *4)
print(‘\nabc’ *4)
T=[1;10;-5;30;40;20]
print(T)
print(T[ ::2])
print(T[ ::-1])
36
Les structures
conditionnelles
37
Les structures
conditionnelles
1°) La structure conditionnelle simple:
Syntaxe algorithmique Syntaxe en python
[Initialisation] Si condition if condition :
Alors Instruction 1
Instruction Instruction 2
1 ----
Instruction ----
2 Instruction n
----
----
NB: L’indentation Instruction
est obligatoire pour désigner les instructions à exécuter lorsque la
n
condition est vérifiée.
Fin Si
soit la séquence suivante :
if (a>3) :
a = a+2
b=a*2 38
c=b*2
l’instruction "c = b*2" ne fait pas partie du bloc "if".
Les structures
conditionnelles
2°) La forme alternative:
Syntaxe algorithmique Syntaxe en python
[Initialisation] Si condition Alors if conditions:
Instruction 1.1 Instruction 1.1
Instruction 1.2 Instruction 1.2
---- ----
Instruction1. n Instruction 1.n
Sinon else:
Instruction 2.1 Instruction 2.1
Instruction 2.2 Instruction 2.2
---- ----
Instruction2. n Instruction 2.n
Fin Si
39
Les structures
simple) : conditionnelles
1°) La structure conditionnelle simple (cas
Syntaxe algorithmique Syntaxe en python
[Initialisation] Si condition Alors if conditions :
Instruction1 Instruction1
Sinon else :
Instruction2 Instruction2
Fin Si
Autre écriture : instruction1 if conditions else
instruction2 Exemple :
X = "pair" if a % 2 == 0 else
"impair"
40
Les structures
conditionnelles
2°) La structure conditionnelle généralisée:
Syntaxe algorithmique Syntaxe en python
[Initialisation] if condition1 :
Si condition 1 Alors Instruction 1
traitement 1 elif condition2 :
Sinon Si condition 2 Alors Instruction 2
traitement 2 elif condition3 :
Sinon Si condition 3 Alors Instruction 3
traitement 3 ----
----- else :
Sinon Si condition n-1 Alors Instruction n
traitement n-1
Sinon traitement n
FinSi
41
Les structures
conditionnelles
2°) La structure conditionnelle à choix multiple :
Syntaxe algorithmique Syntaxe en python
Initialisation
Selon <identificateur>
valeur1 : instruction1
valeur2 : instruction2
………………….. Non disponible
[Autres : instructions]
Fin Selon
42
Les structures
itératives
43
Les structures
itératives
1°) La structure itérative complète:
Syntaxe algorithmique Syntaxe Python
Pour compteur de Début à Fin (pas) Faire for variable in sequence :
traitement traitement
Fin pour
NB : sequence est un ensemble d’éléments tels que liste, tuple, etc.
Question : Exécuter à la main les exemples suivants et déduire le rôle de
chacun
Exemple1 :
maListe=[’A’,’B’,’C’,’D’,’E’,’F’]
for i in maListe :
print(i)
Exemple2 :
for i in maListe[:2] : 44
print(i)
Les structures
itératives
1°) La structure itérative complète:
Exemple 3 :
for i in maListe[1:4:2] :
print(i)
Exemple 4 :
for i in range(5):
print(i)
Exemple 5 :
for i in "Bonjour" :
print (i+ " * ")
45
Les structures
itératives
1°) La structure itérative complète:
Application 1 : (Activité 1 page 108 du manuel scolaire)
Ecrire un programme Python qui saisit un entier naturel n suivi de n
réels à mettre dans un tableau M. Le programme affiche ensuite toutes les
valeurs de M supérieures à 10.
46
Les structures
itératives
1°) La structure itérative complète:
Application 2 :
Ecrire un programme Python qui saisit un mot composé de lettres en
majuscules et qui remplace chacune de ses lettres par sa symétrique dans la
liste de l'alphabet par rapport au milieu. Par exemple, la lettre A sera
remplacée par la lettre Z et réciproquement, la lettre J par la lettre Q et
réciproquement. A la fin, le programme affiche la chaîne résultat.
47
Les structures
itératives
1°) La structure itérative à condition d’arrêt :
Syntaxe algorithmique Syntaxe Python
1- [Initialisations] Tant Que conditions
Faire Initialisations
action1 while conditions :
action2 action1
… action2
action n …
Fin Tant Que action n
Syntaxe algorithmique Syntaxe Python
1- [Initialisations] Répéter
action1
action2
… Non disponible
action n
Jusqu’à conditions 48
Les structures
itératives
1°) La structure itérative à condition d’arrêt :
Application 1 Ecrire un programme qui vérifie si une valeur x existe dans un
tableau T de n réels. x est une valeur réelle donnée. Le programme affichera un
message de la forme : "x existe dans T" ou "x n'existe pas dans T".
n=0
while n<1:
n=int(input("Donner le nombre d\'éléments :
"))
T = [0] * n
for i in range(n):
T[i]=eval(input("Donner T["+str(i+1)+"]: "))
x = eval (input("Donner un nombre à chercher :
")) 49
xx = "Existe dans T" if x in T else "N\'existe pas
dans T"
Modularité
1°) Les fonctions :
Appel
Syntaxe algorithmique Syntaxe Python
Nom_objet Nom_fonction (pe1, pe2, … , pen) 1) Nom_objet = Nom_fonction (pe1, pe2, … , pen)
2) ob1, ob2, …,obn = Nom_fonction (pe1, pe2, … , pen)
Une fonction en python peut retourner plusieurs résultats;
L'entête de la définition :
Syntaxe algorithmique Syntaxe Python
Fonction Nom_fonction (pf1 : type1, pf2 : type2, … , pfn : typen) : def Nom_fonction (pe1, pe2, … , pen) :
type_fonction 50
return ob1 [, ob2, ob3, … , obn]
Modularité
2°) Les procédures:
Appel
Syntaxe algorithmique Syntaxe Python
Nom_procedure (pe1, pe2, … , pen) Nom_procedure (pe1, pe2, … , pen)
L'entête de la définition :
Syntaxe algorithmique Syntaxe Python
Procédure Nom_procedure (pf1 : type1, pf2 : type2, … , pfn : typen) def Nom_procedure (pe1, pe2, … , pen) :
51
Modularité
Application :
Ecrire un module pour vérifier si une chaine ch est composée uniquement par des lettres
majuscules.
def uniquementLettres(ch):
i=0
while i!= len(ch) and ord(ch[i]) in range(65,91): def uniquementLettres (ch) :
i=i+1
L = [chr (i) for i in range ( 65 ,
return i==len(ch)
x]91 [) i for i in if i not in L
] ch
=return ( len ( x ) == 0 )
def uniquementLettres (ch):
i=0
while True: def uniquementLettres (ch) :
if i== len(ch) or ord(ch[i]) not in x = [ i for i in ch if chr(i) not in range ( 65 , 91
range(65,91): return ( len ( x ) == 0 )
break def uniquementLettres (ch) :
else : L= [chr(i) for i in range(65,91)]
i=i+1 returnlen
( ( set(ch)-set(L)) == 0
return i==len(ch) )
Modularité
3°) Le mode de passage des paramètres par
référence :
Syntaxe algorithmique Syntaxe Python
Ajout du mot var Pas de changement au niveau de l’entête
Application 1 : Ecrire un module qui saisit un entier
def saisie (x) :
x = int (input ( "Donner un entier :
" ))
print(x)
a=0
b=0 Les paramètres de structure simple sont passés
saisie (a) par valeurs.
print (a)
saisie (b) 53
print (b)
Forme générale d’un
Syntaxe
algorithmique
programme
from math import * from math import *
def carre(x): abc1 = 5
ALGORITHME Nom x = ….. def carre(x):
DEBUT x = …..
traitements def carre2(y):
FIN y = ….. abc2 = 2
for j in range (3): abc3 = abc1+abc2
y = …. print (abc3)
abc1 = 5 def carre2(y):
abc2 = 2 y = …..
abc3 = abc1+abc2 for j in range (3):
for i in range (5): y = ….
if ( i % 2 == 0 ) : for i in range (5):
carre('red') if ( i % 2 == 0 ) :
else : carre('red')
carre('blue') else :
print (abc3) carre('blue')
54
Webographie
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
55
Merci Pour votre attention
56