Vous êtes sur la page 1sur 73

Formation Python

Réalisée par :
Formateur : Yassine Ben Salah
CREFOC - GAFSA
2019-2020

Formateur : Yassine Ben Salah 1


Plan
 I- Introduction au langage Python

 II- Installation et prise en main d'un environnement

de développement pour Python (IDLE)

 III- Les structures de données

 IV- Les Entrées – les sorties en Python

Formateur : Yassine Ben Salah 2


I- Introduction
I.1 Présentation
 Python
est un langage de programmation inventé par Guido van
Rossum en 1989.
 Pythonest un langage de programmation de haut niveau. Il est
proche des langues naturelles, ce qui facilite l’écriture des
programmes, en plus le programme peut faire fonctionner sans
aucune modification, sur des machines ou des systèmes différents.
 python est un langage de programmation interprété et non
compilé
 Pythonest un excellent langage pour les débutants car il est facile
à apprendre.
Site officiel : https://www.python.org

Formateur : Yassine Ben Salah 3


I- Introduction
I.2 Historique

 1989 : Création du Python par Guido Van Rossum


 1994 : Publication de la version 1.0
 16 Octobre 2000 : Publication de la version 2.0
 3 décembre 2008 : Publication de la version 3.0
 24 Décembre 2018 : Publication de la version 3.7.2
 25 Mars 2019 : Publication de la version 3.7.3
 8 Juillet 2019 : Publication de la version 3.7.4

Formateur : Yassine Ben Salah 4


I- Introduction
I.3 Que peut faire Python ?

 Python peut être utilisé sur un serveur pour créer des


applications web.
 Python peut se connecter aux systèmes de base de données. Il
peut aussi lire et modifier des fichiers.
 Python peut être utilisé pour traiter des données volumineuses et
effectuer des calculs mathématiques complexes.
 Python peut être utilisé pour le développement de logiciels.
 Python peut être utilisé pour créer des workflows (modéliser et
d'automatiser les flux d'informations dans l'entreprise.

Formateur : Yassine Ben Salah 5


I- Introduction
I.4 Qui utilise Python

Formateur : Yassine Ben Salah 6


I- Introduction
I.5 Pourquoi préférer Python aux autres langages?
• Python est gratuit : Téléchargement et installation de python est gratuit et
facile, Le code source est accessible
• Python est Facile à apprendre : la Structure et la syntaxe sont assez intuitive
et facile à saisir
• Indentation du code : Pas de begin et end explicites, ni d'accolades pour les
blocs d’instructions.
• Très documenté : les documentations officiels de python se trouvent dans :
https://www.python.org/doc/
• Python est portable et multiplateforme

• Python est interprété : test de quelques lignes du code sans besoin d’écrire
un programme complet
• Python est puissant :Typage dynamique, gestion automatique de la mémoire,
riche en terme de bibliothèque, …
• Python est Joker : il est utilisé pour l’administration système, les applications
bureau, le web, jeux vidéo, ….
• Python c'est l'avenir : python c'est le métier de l'avenir, to make money
Formateur : Yassine Ben Salah 7
I- Introduction
I.5 Pourquoi préférer Python aux autres langages?
Python est le langage de programmation le plus populaire (Septembre 2019)

Top Programming Languages 2019. © IEEE Spectrum


Formateur : Yassine Ben Salah 8
II- Installation et prise en main d'un environnement de
développement pour Python (IDLE)

Sous Windows :
• Visiter le site : https://www.python.org/downloads/
• télécharger la dernière version pour windows (Download Python
3.7.4) (Choisir la version compatible avec votre système 32-bits ou
bien 64-bits)
• Installer ensuite python
• Dans le menu windows vous trouvez Python
• ouvrir IDLE
• Commencer à coder
N.B. : Python est préinstallé sur la plupart des systèmes Unix, Linux, Mac
Os, etc…

Formateur : Yassine Ben Salah 9


II- Installation et prise en main d'un environnement de
développement pour Python (IDLE)

IDLE (Integreted DevLopement Environement) : Editeur pour Python


L’environnement de développement intégré IDLE est un logiciel spécialement conçu pour
faciliter la programmation en Python
IDLE offre un certain nombre de fonctionnalités pour vous aider à développer vos
programmes Python comme :
 Le Shell Python (Interpréteur interactive )
 L’éditeur de texte avec coloration syntaxique, l’auto complétion et l’indentation
 Le débogueur intégré avec avancement par étape
N.B. :
 IDLE est l’éditeur standard fourni avec la distribution Python
 On peut utiliser d’autres éditeurs comme exemples : visual studio code, MU, Pycharme,
Thonny, Pycharm ou Eclipse, etc…

Formateur : Yassine Ben Salah 10


II- Installation et prise en main d'un environnement de
développement pour Python (IDLE)

IDLE (Integreted DevLopement Environement) : Editeur pour Python

Formateur : Yassine Ben Salah 11


II- Installation et prise en main d'un environnement de

développement pour Python (IDLE)


Activité :
 Lancer l’éditeur IDLE de python ou bien choisir un autre éditeur Python : Mu par exemple
 Taper ce code

#Mon premier code en Python : #c'est un commentaire


print('Salut mes collègues ')
print('Hello')
print('Mon premier code en python')
"""
ceci est un
commentaire long
"""
 Enregistrer le fichier sous le nom main.py dans un dossier nommé TPS_Python et
exécuter ce code
N.B. : py est l'extension d'un fichier python
# un commentaire dans une seule ligne
''' un commentaire dans plusieurs lignes '''
""" un commentaire dans plusieurs lignes """

Formateur : Yassine Ben Salah 12


III- Les structures de données
III.1 Les objets-Les constantes

Définition :
Une constante est une donnée (Objet) dont la valeur ne peut
subir aucune modification au cours du programme

Formateur : Yassine Ben Salah 13


III- Les structures de données
III.1 Les objets-Les constantes
Activité :
Ecrire un code en Python qui permet :
 D’afficher la constante pi,
 D’additionner pi avec 1, et de l’affecter à pi
 D’afficher pi encore une autre fois.
 Exécuter ce code, que constatez vous?
 Fermer l'éditeur IDLE et ouvrir de nouveau et afficher la constante pi. Que
constatez vous?

Formateur : Yassine Ben Salah 14


III- Les structures de données
III.1 Les objets-Les constantes

Solution :
from math import * #importer la bibliothèque du module math
print('Pi = ',pi) #Pi = 3.141592653589793
pi=pi+1
print('Pi = ',pi) #Pi = 4.141592653589793

Constatations :
• On constate que la constante pi peut être changer au cours du programme
• Après la fermeture de l'éditeur IDLE et ouverture de nouveau, on
remarque que la valeur pi est toujours initialisé à 3.14

Formateur : Yassine Ben Salah 15


III- Les structures de données
III.2 Les objets-Les variables

Définition :
Une variable est un objet auquel une valeur peut être affectée et
qui peut subir des modifications au cours du traitement
Déclaration :
Nom_Variable = Valeur_Variable
= correspond à une affectation

Formateur : Yassine Ben Salah 16


III- Les structures de données
III.2 Les objets-Les variables
Activité :
Déclarer la variable age=17, puis faire appel à l'aide du nom age, Age et AGE
Que constatez vous?
Solution :
age=17
print ('age=', age)
print ('age=', Age) #Erreur
print ('age=', AGE) #Erreur

N.B. :
• Les lettres majuscules et minuscules ne constituent la même variable
(age <> Age <> AGE)
• Python est sensible à la casse, ce qui signifie les variables age, Age et
AGE sont différentes

Formateur : Yassine Ben Salah 17


III- Les structures de données
III.3 Les types de données
Activité 5 :
a=32 et b=2.5
Déterminer le type, l’identifiant et les fonctionnalités des objets a et b.
Solution :

a=32
print(type(a)) #<class 'int'>
print(id(a)) # 1862689984
print(dir(a)) # liste l’ensemble des fonctionnalités de l’objet a
b=2.5
print(type(b)) #<class 'float'>
print(id(b)) # 1537399853416
print(dir(b))

N.B. : Le modèle de données de Python est basé sur les objets. Toute donnée manipulée est un objet avec un identifiant,
un type et une valeur.
• id() : renvoie un entier représentant l’identifiant interne d’un objet
• type() : renvoie le type d’un objet.
• dir() : liste l’ensemble des fonctionnalités d’un objet.

Formateur : Yassine Ben Salah 18


III- Les structures de données
III.3 Les types de données
En Python, les types de données sont classés généralement en trois
catégories : les valeurs numériques, les valeurs alphanumériques et les
nombres complexes.
Les types de données les plus utilisés sont :
 Les entiers (Exemple 100)
 Les réels (Exemple 5.99) (on utilise un point décimal et non une virgule)
 Le type complexe (Exemple 5+2j)
 Le type booléen
 Les chaines de caractères : mot / Phrase (Exemple 'Bonjour')
 Le type liste (les Tableaux dynamiques)
 Le type tuple (les Tableaux statiques, non modifiables)
 Le type dictionnaire (Les tableaux associatifs)
 Le type set (les ensembles)

Formateur : Yassine Ben Salah 19


III- Les structures de données
III.3 Les types de données
Activité : Taper et exécuter le code suivant

print(type(20)) #<class 'int'>


print(type(7.5)) #<class ‘float'>
print(type('Bonjour')) #<class ‘str'>
print(type(8<10)) #<class ‘bool'>
print(type(9+2j)) #<class ‘complex'>
x=[7,5]
print(type(x)) #<class ‘liste'>
x=7,5
print(type(x)) #<class ‘tuple'>

Formateur : Yassine Ben Salah 20


III- Les structures de données
III.3 Les types de données
1.Le type entier (int)

a. Définition :
Une variable de type int est un nombre sans virgule
flottante
Le type int n’est limité en taille que par la mémoire de la
machine (pratiquement la taille d’un entier en Python est
illimitée)

Formateur : Yassine Ben Salah 21


III- Les structures de données
III.3 Les types de données
1.Le type entier (int)
b. Les opérateurs arithmétiques sur les
entiers :

Formateur : Yassine Ben Salah 22


III- Les structures de données
III.3 Les types de données
1.Le type entier (int)
Activité : Taper et exécuter le code suivant
a=20
b=3
print('a=',a) #a= 20
print(type(a)) #<class 'int'>
print(a,'+',b,'=',a+b) #20 + 3 = 23
print(a,'-',b,'=',a-b) #20 - 3 = 17
print(a,'*',b,'=',a*b) #20 * 3 = 60
print(a,'/',b,'=',a/b) #20 / 3 = 6.666666666666667
print(a,'**',b,'=',a**b) #20 ** 3 = 8000
print(a,'//',b,'=',a//b) #20 // 3 = 6
print(a,'%',b,'=',a%b) #20 % 3 = 2

Formateur : Yassine Ben Salah 23


III- Les structures de données
III.3 Les types de données
2.Le type réel (float)
a. Définition :
Une variable de type float est un nombre décimal avec
virgule flottante (avec un point décimal)
Un float en python doit être écrit avec un point décimal
(jamais avec une virgule)
Activité : Taper et exécuter le code suivant

a=2,5
print(type(a)) #<class ‘tuple'>
b=2.5
print(type(b)) #<class ‘float'>

N.B. 2,5 est de type tuple alors 2.5 est de type float

Formateur : Yassine Ben Salah 24


III- Les structures de données
III.3 Les types de données
2.Le type réel (float)

b. Les opérateurs arithmétiques sur les réels :

Formateur : Yassine Ben Salah 25


III- Les structures de données
III.3 Les types de données
2.Le type réel (float)
Activité : Taper et exécuter le code suivant
a=20.5
b=3.2
print('a=',a) #a= 20.5
print(type(a)) #<class 'float'>
print(a,'+',b,'=',a+b) #20.5 + 3.2 = 23.7
print(a,'-',b,'=',a-b) #20.5 - 3.2 = 17.3
print(a,'*',b,'=',a*b) #20.5 * 3.2 = 65.60000000000001
print(a,'/',b,'=',a/b) #20.5 / 3.2 = 6.40625
print(a,'**',b,'=',a**b) #20.5 ** 3.2 = 15762.037462352258
print(a,'//',b,'=',a//b) #20.5 // 3.2 = 6.0
print(a,'%',b,'=',a%b) #20.5 % 3.2 = 1.299999999999999

Formateur : Yassine Ben Salah 26


III- Les structures de données
III.3 Les types de données
Les opérateurs de comparaison sur les entiers et les réels :

N.B. : En Python il existe deux opérateurs d’identités is et is not


• x is y : Identité
• x is not y : Non identité

Formateur : Yassine Ben Salah 27


III- Les structures de données
III.3 Les types de données
Activité : Taper et exécuter le code suivant
x = 5.5
y=9
print(x>y) #False
print(x>=y) #False
print(x<y) #True
print(x<=y) #True
print(x==y) #False
print(x!=y) #True
print(2<=y<10) #True
print(x is y) # opérateur d’identité False
print (x is not y) # opérateur de non identité True

N.B.: Il ne faut pas confondre entre l’opérateur d’affectation « = » et l’opérateur de


comparaison «==» qui compare les valeurs de deux variables
Il ne faut pas confondre entre «is» « et «==», is compare les valeurs et aussi les
objets (exemple comparer deux listes ), alors == compare seulement les valeurs

Formateur : Yassine Ben Salah 28


III- Les structures de données
III.3 Les types de données
Les opérateurs d’assignation sur les entiers et les réels :

Opérateur Expression Signification


+= a+=3 a=a+3
-= a-=3 a=a-3
*= a*=2 a=a*2
/= a/=2 a=a/2
%= a%=2 a=a%2

Formateur : Yassine Ben Salah 29


III- Les structures de données
III.3 Les types de données
Ordre de priorité des opérateurs :
L'ordre de priorité est :
1. les parenthèses ()
2. la multiplication *, la division /, la division entière // et le reste de la
division entière %
3. L'addition + et la soustraction –
N.B. Si les opérateurs ont même priorité, on commence de gauche vers
la droite

Formateur : Yassine Ben Salah 30


III- Les structures de données
III.3 Les types de données
Activité : Taper et exécuter le code suivant
a=7
b=5
c=2
d=9
w= a * b // d % c #1
x= (a * b) // (d % c) #35
y = a-b * c + d #6
z= (a-b) * c + d #13
print(w)
print(x)
print(y)
print(z)

Formateur : Yassine Ben Salah 31


III- Les structures de données
III.3 Les types de données
Les fonctions mathématiques :
Python fournit des fonctions mathématiques de base, regroupées dans le module
math.
Elle peuvent être regroupées en trois ensembles :
 Des constantes.
 Des fonctions de conversion ;
 Des fonctions trigonométriques ;
Pour utiliser les fonctions mathématiques, il faut commencer par importer le
module math, pour importer la bibliothèque mathématique on utilise :
from math import *
(* pour utiliser toutes les fonctions usuelles de math)
On peut préciser la fonction du module math, pour cela on utilise
from math import nom_fonction
par exemple from math import pi

N.B. : dir( ) retourne la liste des fonctions d'un module donné :

Formateur : Yassine Ben Salah 32


III- Les structures de données
III.3 Les types de données
Activité : Taper et exécuter le code suivant

from math import *


print(dir()) #Lister l’ensemble des fonctionnalités du module math
print(e) #Constante mathématique e (constante d’Euler) = 2.718281828459045
print(pi) #Constante mathématique π=3.141592653589793
print(sqrt(16)) #Renvoie la racine carrée de x : 4.0
print(abs(-8)) #Renvoie la valeur absolue de x : 8
print(fabs(-8)) #Renvoie la valeur absolue de x en float : 8.0
print(trunc(5.25)) #Renvoie la partie entière de x : 5
print(pow(3, 4)) #Renvoie x**y : 81,0
print(cos(pi/4)) #Renvoie le cosinus de x en radians : 0.7071067811865476
print(degrees(pi/4)) #Convertit en degrés un angle exprimé en radians : 45,0

Formateur : Yassine Ben Salah 33


III- Les structures de données
III.3 Les types de données
Les nombres aléatoires :
Pour générer un nombre aléatoire avec python, on doit importer d’abord
la bibliothèque random
 Pour générer un nombre aléatoire de type entier, on doit appeler la
fonction randint
from random import randint
randint(BINF,BSUP)
(BINF, BSUP) représente l'intervalle au quelle générée le nombre
aléatoire de type entier
 Il est possible de générer un nombre aléatoire de type réel, on doit
d'abord appeler la fonction uniform de la bibliothèque random
from random import uniform
uniform(BINF,BSUP)
(BINF, BSUP) représente l'intervalle au quelle générée le nombre aléatoire
de type réel

Formateur : Yassine Ben Salah 34


III- Les structures de données
III.3 Les types de données

Activité : Taper et exécuter le code suivant

from random import randint


print(randint(0,5)) # génère un nombre aléatoire de type entier entre 0 et 5
from random import uniform
print(uniform(0,5)) # génère un nombre aléatoire de type réel entre 0 et 5

Formateur : Yassine Ben Salah 35


III- Les structures de données
III.3 Les types de données

Application : Volume.py

Écrire un programme qui, à partir de la saisie d’un


rayon et d’une hauteur, calcule le volume d’un cône
droit

Formateur : Yassine Ben Salah 36


III- Les structures de données
III.3 Les types de données

Solution : Volume.py

from math import *


r=float(input("Rayon:"))
h=float(input("Hauteur:"))
V=1/3 *pi*r**2 *h
print("Volume = ",V)

Formateur : Yassine Ben Salah 37


III- Les structures de données
III.3 Les types de données

Application : Surface.py

Une machine découpe dans une plaque, des disques circulaires de


rayon rExt, percés d’un trou circulaire de rayon rInt avec rInt < rExt et
ne débordant pas du disque.
Quelle est la surface d’un disque découpé?

Formateur : Yassine Ben Salah 38


III- Les structures de données
III.3 Les types de données

Solution : Surface.py

from math import *


rayon_Ext=float(input("Rayon extérieur:"))
rayon_Int=float(input("Rayon intérieur:"))
sGrandDisque=pi * rayon_Ext ** 2
sDuTrou=pi * rayon_Int ** 2
surface=sGrandDisque - sDuTrou
print("Surface du disque:",surface)

Formateur : Yassine Ben Salah 39


III- Les structures de données
III.3 Les types de données
4.Le type booléen (bool) :

a. Définition :
Une variable de type bool peut prendre soit la valeur True
(vrai) ou False (faux)
Activité : Taper et exécuter le code suivant

#x=true Erreur
#y=false Erreur
#print(type(x))
#print(type(y))
x=True
y= False
print(type(x)) #<class ‘bool'>
print(type(y)) #<class ‘bool'>

N.B. On utilise True et False


Formateur : Yassine Ben Salah 40
III- Les structures de données
III.3 Les types de données
4.Le type booléen (bool) :
b. Les opérateurs logiques sur les booléens :

Formateur : Yassine Ben Salah 41


III- Les structures de données
III.3 Les types de données
4.Le type booléen (bool) :

Activité : Taper et exécuter le code suivant

print(not(2<1)) #True
print((5>3) and (1==2)) #False
print((7==8)or(4!=3)) #True

Formateur : Yassine Ben Salah 42


III- Les structures de données
III.3 Les types de données
5.Le type chaîne de caractères (str) :

a. Définition :
Une variable de type str est un objet qui peut prendre une suite de
caractères
En python une chaîne de caractères est définit entre deux
apostrophes ou deux guillemets

Formateur : Yassine Ben Salah 43


III- Les structures de données
III.3 Les types de données
5.Le type chaîne de caractères (str) :
Activité : Taper et exécuter le code suivant

s1 = 'Salut mes collègues'


s2 = 'Aujourd\'hui' # séquence d'échappement \

#La séquence d'échappement \n représente un saut ligne :


s3 = 'Première ligne\nDeuxième ligne'
print (s1) # Salut mes collègues
print (type(s1)) # <class 'str'>
print(s2) # Aujourd'hui
print(s3) # Première ligne
# Deuxième ligne
Formateur : Yassine Ben Salah 44
III- Les structures de données
III.3 Les types de données
5.Le type chaîne de caractères (str) :
b- Formatage de chaîne :
À chaque expression précédée d’un %, appelé marqueur de formatage, doit
correspondre une valeur de formatage

L’expression est de la forme %[P]c, où c est un caractère qui détermine le


type de valeur et P un éventuel paramètre supplémentaire, indiquant la
précision à utiliser pour la valeur à formater.

La précision est représentée par un entier préfixé par un point, qui


spécifie le nombre de chiffres significatifs après la virgule.

Formateur : Yassine Ben Salah 45


III- Les structures de données
III.3 Les types de données
5.Le type chaîne de caractères (str) :
Exemples de caractères de formatage :
 %d : entier;
 %f ou F% : réel ;
 %c : un seul caractère (sous la forme d’un string ou d’un entier) ;
 %s : renvoie le résultat de la primitive str() ;
 %o : octal non signé ;
 %u : décimal non signé ;
 %x ou %X : valeur hexadécimale, préfixée respectivement par 0x ou 0X ;
 %e ou %E : valeur à virgule flottante, de la forme xev ou xEv ;

Formateur : Yassine Ben Salah 46


III- Les structures de données
III.3 Les types de données
5.Le type chaîne de caractères (str) :

Activité : Taper et exécuter le code suivant


print('%.2f dinars' %2.394765) # 2.39 dinars
print('%E dinars' %2.394765) #2.394765E+00 dinars
print('%s dinars' %'2.394') #2.394 dinars
print('%d dinars' %2.394) #2 dinars
print ("Mon Prénom est %s j'ai %d ans !" % ('Anis', 22)) #Mon Prénom est Anis j'ai 22 ans !

Formateur : Yassine Ben Salah 47


III- Les structures de données
III.3 Les types de données
5.Le type chaîne de caractères (str) :

c. Accès aux éléments d'une chaîne :


Python offre des mécanismes permettant d’accéder séparément à chacun
des caractères d’une chaîne,
L’accès aux caractères se fait par index

Formateur : Yassine Ben Salah 48


III- Les structures de données
III.3 Les types de données
5.Le type chaîne de caractères (str) :
Activité : Taper et exécuter le code suivant

#Accès aux éléments d’une chaîne


s1 = "Salut mes collègues"
print(s1[0]) #S
print(s1[3]) #u
print(s1[-1]) #s
print(s1[-5]) #è

#le découpage, Substring, slicing


print(s1[1:10]) #alut mes (caractère d'indice 1 au caractère d'indice 10 (exclu))
print(s1[2:10:3]) #l s (caractère d'indice 2 au caractère d'indice 10 (exclu) par pas = 3)
print(s1[:3]) #Sal (carractère d'indice 0 au caracère d'indice 3 (inclu)
print(s1[::3]) #Sum lgs (carractère d'indice 0 au dernier caracère par pas =3 )
print(s1[::-2]) #suèlcsmtlS (en commençant de droite à gauche par pas = -2)
#s1[0]='C' #Erreur

Formateur : Yassine Ben Salah 49


III- Les structures de données
III.3 Les types de données
5.Le type chaîne de caractères (str) :
d. Les opérations sur les chaînes de caractères :
Les chaînes de caractères disposent de nombreuses fonctionnalités
appelées « méthodes » en Programmation Orientée Objet (P.O.O) facilitant
leur manipulation
dir(str) # Liste toutes les méthodes des chaînes

Formateur : Yassine Ben Salah 50


III- Les structures de données
III.3 Les types de données
5.Le type chaîne de caractères (str) :
Exemples d’opérations sur les chaînes de caractères :

Fonctions Description

permet la concaténation de deux ou plusieurs chaînes des


+
caractères
* permet la répétition d’une chaîne n fois
Len(ch) Retourne le nombre de caractères d'une chaîne
Ch.strip() Enlève les espaces en début et en fin d'une chaîne Ch
Ch.lower() Mettre tous les caractères d’une chaîne Ch en minuscules
Ch.upper() Mettre tous les caractères d’une chaîne Ch en majuscules
Vérifier si tous les caractères d’une chaîne Ch sont en
Ch.isupper()
majuscules (True / False)
Ch.find(sous- Retourne la position d'une sous chaîne dans une chaîne
chaine) Ch

Formateur : Yassine Ben Salah 51


III- Les structures de données
III.3 Les types de données
5.Le type chaîne de caractères (str) :
Fonctions Description

Retourne le nombre d'occurrence d'une sous


Ch.count(sous-chaîne)
chaîne dans une chaîne Ch
Remplacer les n premières occurrences d’un
Ch.replace(anciens-cars,
caractère ou d’une sous chaîne par un autre
nouveaux-cars, n-prem-occ)
dans une chaîne Ch
permet de créer une liste, qui contient les
Ch.split(caract_séparation )
éléments d'une chaine Ch en les séparant
(découper) par un caractère choisi
max(ch) Retourne le caractère maximum d'une chaîne
Min(ch) Retourne le caractère minimum d'une chaîne
Inclusion – retourne True si Ch1 est dans Ch
Ch1 in Ch
False si non
Non inclusion - retourne True si Ch1 n'est pas
Ch1 not in Ch
dans Ch, False si non
Formateur : Yassine Ben Salah 52
III- Les structures de données
III.3 Les types de données
5.Le type chaîne de caractères (str) :
Activité : Taper et exécuter le code suivant
s1 = "Salut mes collègues"
s2 = " La vie "
s3 = "est "
s4 = "belle"
print('Opérations sur les chaînes : Helper')
s5 = s2 + s3 + s4
s6 = s2 * 3
print(s5) # La vie est belle
print(s6) # La vie La vie La vie
print(len(s1)) #19
print(s2.strip()) #La vie
print(len(s2)) #8
print(len(s2.strip())) #6
print(s1.lower()) #salut mes collègues
print (s1.upper()) #SALUT MES COLLÈGUES
print (s3.isupper()) #False

Formateur : Yassine Ben Salah 53


III- Les structures de données
III.3 Les types de données
5.Le type chaîne de caractères (str) :
Activité : Taper et exécuter le code suivant
s1 = "Salut mes collègues"
s2 = " La vie "
s3 = "Salut, mes amis, ça roule?"

print('Opérations sur les chaînes : ')


print(s1.find('mes')) #6
print(s1.count('es')) #2
print (s2.replace("vi", "ru",1)) # La rue
l=s3.split(",")
print(l) # ['Salut', ' mes amis', ' ça roule?']
print(type(l)) # <class 'list'>
print(s3.split(",")) # ['Salut', ' mes amis', ' ça roule?']
print(s3.split(" ")) # ['Salut,', 'mes', 'amis,', 'ça', 'roule?']
print(max(s4)) #l
print(min(s4)) #A
print("?" in s3) # True
print("mes" not in s1) # False

N.B. : in / not in : sont deux opérateurs d'appartenance pour les séquences (chaînes, listes, …)

Formateur : Yassine Ben Salah 54


III- Les structures de données
III.3 Les types de données
6.Les tableaux (Les listes) :
a.Définition : une liste est une structure de données qui
contient plusieurs éléments de même type ou de types
différents.
une liste peut contenir des éléments de type liste
Exemples de listes:
l1 = [5,6,3,2]
l2 = [10, 5.2, 'Salut mes amis ', 8]
I3=[[4,5.2, 8], [‘Salut, 14, ‘Bonjour’, 12.15]]

Formateur : Yassine Ben Salah 55


III- Les structures de données
III.3 Les types de données
6.Les tableaux (Les listes) :
Activité : Taper et exécuter le code suivant
print ('créer et afficher des listes ')
NL =list() #Création d'une liste vide à l'aide de la fonction list
L=[ ] #Création d'une liste vide
print (type(NL)) #<class 'list'>
print (type(L)) #<class 'list'>
l1 = [5,6,3,2]
l2 = [10, 5.2, 'Salut mes amis ', 8]
l3 = [l1, l2]
l4 = [l3, [5,3,2]]
l5 =l1 + l2
l6 = ['Hi',] * 10
l7 = [x**2 for x in [1,2,3,4]] #créer une liste qui contient [1**2, 2**2, 3**2, 4**2]
l8 = [x/2 for x in [1,2,3,4]]
print(type(l1)) #<class 'list'>
print(l1) #[5, 6, 3, 2]
print(l2) #[10, 5.2, 'Salut mes amis ', 8]
print(l3) #[[5, 6, 3, 2], [10, 5.2, 'Salut mes amis ', 8]]
print(l4) #[[[5, 6, 3, 2], [10, 5.2, 'Salut mes amis ', 8]], [5, 3, 2]]
print(l5) # [5, 6, 3, 2, 10, 5.2, 'Salut mes amis ', 8]
print(l6) # ['Hi', 'Hi', 'Hi', 'Hi', 'Hi', 'Hi', 'Hi', 'Hi', 'Hi', 'Hi']
print(l7) # [1, 4, 9, 16]
print(l8) # [0.5, 1.0, 1.5, 2.0]

Formateur : Yassine Ben Salah 56


III- Les structures de données
III.3 Les types de données
6.Les tableaux (Les listes) :

b. Accès aux éléments d'une liste :


On peut accéder aux éléments d’une liste à l’aide de leur indice associé

Formateur : Yassine Ben Salah 57


III- Les structures de données
III.3 Les types de données
6.Les tableaux (Les listes) :
Activité : Taper et exécuter le code suivant
print ('Accès aux éléments d’une liste ')

l1 = [5,6,3,2]
l2 = [10, 5.2, 'Salut mes amis ', 8, 12]
l3 = [l1, l2]
l4 = [l3, [5,3,2]]

print(l1[0]) #5
print(l2[-1]) #12

for i in l4 : # Accès aux éléments de l4


print(i) # [[5, 6, 3, 2], [10, 5.2, 'Salut mes amis ', 8, 12]]
# [5, 3, 2]
# slicing
print(l2[1:3]) # [5.2, 'Salut mes amis '] (élément d’indice 1 jusqu’à l’élément d’indice (3-1) ) (slicing)
print(l2[1:]) # [5.2, 'Salut mes amis ', 8, 12] ( élément d’indice 1 jusqu’au dernier élément)
print(l2[:2]) # [10, 5.2] ( élément d’indice 0 jusqu’à l’élément d’indice 2(inclu))
print(l2[0:3:2]) # [10, 'Salut mes amis '] ( élément d’indice 0 jusqu’à l’élément d’indice 3 (exclu) par pas = 2)
print(l2[::2]) # [10, 'Salut mes amis ', 12] ( élément d’indice 0 jusqu’au dernier élément par pas = 2 )
print(l2[::-1]) # [12, 8, 'Salut mes amis ', 5.2, 10] (1er élément jusqu’au dernier élément de droite à gauche)
print(l2[::-2]) #[12, 'Salut mes amis ', 10] (1er élément jusqu’au dernier élément de droite à gauche par pas = -2

Formateur : Yassine Ben Salah 58


III- Les structures de données
III.3 Les types de données
6.Les tableaux (Les listes) :
c. Les opérations sur les listes : Helper
Les listes possèdent des méthodes très pratiques pour les manipuler ,
on peut citer comme exemples :
Fonctions Description

+ permet la concaténation de deux ou plusieurs listes


* permet la répétition d’un élément d’une liste n fois
len(id_liste) Retourne le nombre d’éléments dans une liste
Id_liste.append(elem) permet d'ajouter un élément à la fin d’une liste
Permet de concaténer la liste id_liste à la fin de la liste
id_listex.extend(id_liste)
id_listex
permet d'insérer un élément dans une liste à l’index
Id_liste.insert(index,elem)
indiqué et décaler les autres éléments vers la droite
Id_liste.remove(elem) permet de supprimer un élément dans une liste

Formateur : Yassine Ben Salah 59


III- Les structures de données
III.3 Les types de données
6.Les tableaux (Les listes) :
Fonctions Description

Le mot clé del permet de supprimer un élément


del id_liste[index]
d’indice indiqué d’une liste
permet de supprimer l'élément d'indice indiqué et de
variable=id_liste.pop(index)
mettre l'élément supprimé dans une variable
Id_liste.reverse() permet d'inverser les éléments d'une liste
permet de trier les éléments d’une liste du plus petit
Id_liste.sort()
au plus grand
permet de compter le nombre d'occurrence d’un
Id_liste.count(elem)
élément dans une liste
permet de retourner l'index de l'élément mis entre
Id_liste.index(elem)
parenthèse
permet de copier les élément d'une liste et les
Id_listex=id_liste.copy()
mettre dans une autre liste
Id_liste.clear() Permet de Supprimer tous les éléments d’une liste

Formateur : Yassine Ben Salah 60


III- Les structures de données
III.3 Les types de données
6.Les tableaux (Les listes) :
Activité : Taper et exécuter le code suivant
l1 = [5,6,3,2]
l2 = [10, 5.2, 'Salut mes amis ', 8]
l3 = [l1, l2]
l4 = [l3, [5,3,2]]
l5 =l1 + l2 #concaténer l1 et l2
l6 = ['Hi',] * 10 #répéter ‘Hi’, 10 fois dans l6
print(len(l3)) #2
print(len(l5)) #8
l1.append(30) #append permet d'ajouter 30 à la fin de la liste l1
print(l1) #[5, 6, 3, 2, 30]
l1.insert(2,1000) #permet d'insérer 1000 à la position 2 et décaler les autres éléments
print(l1) #[5, 6, 1000, 3, 2, 30]
l1.remove(6) #remove permet de supprimer la valeur mise entre parenthèse
print(l1) # [5, 1000, 3, 2, 30]
del l2[1] #permet de supprimer l’élément d’indice 1 de la liste l2
print('l2 = ', l2) #l2=[10, 'Salut mes amis ', 8]
nb=l1.pop(2) #pop permet de supprimer l'élément d'indice 2 et mettre cet l'élément supprimé dans nb
print(l1) #[5, 1000, 2, 30]
print(nb) #3

Formateur : Yassine Ben Salah 61


III- Les structures de données
III.3 Les types de données
6.Les tableaux (Les listes) :
Activité : Taper et exécuter le code suivant
l1 = [5,6,3,2,5]
l2 = [10, 5.2, 'Salut mes amis ', 8]
l3 = [l1, l2]
l4 = [l3, [5,3,2]]
l5 =l1 + l2 #concaténer l1 et l2
l6 = ['Hi',] * 10 #répéter ‘Hi’, 10 fois dans l6
l6.extend(l1) #extend Permet de concaténer la liste l1 à la fin de la liste l6
print(l6) #['Hi', 'Hi', 'Hi', 'Hi', 'Hi', 'Hi', 'Hi', 'Hi', 'Hi', 'Hi', 5, 6, 3, 2, 5]
#print(l1.reverse()) #Erreur
l1.reverse() #reverse permet d'inverser les éléments de la liste l1
print(l1) #[5, 2, 3, 6, 5]
l1.sort() #sort permet de trier les éléments de la liste l1 dans l’ordre croissant
print(l1) # [2, 3, 5, 5, 6]
l1.sort(reverse=True) #pour trier les éléments dans l'ordre décroissant il faut utiliser reverse=True
print(l1) #[6, 5, 5, 3, 2]
print(l1.count(5)) #2 (permet de compter le nombre d'occurrence de 5 dans l1)
print(l2.index(5.2)) #1 (index permet de retourner l'index de 5.2 dans l2)
print(l1)
l=l1.copy() #copy permet de copier les éléments de l1 et les mettre dans la liste l
print(l) #[6, 5, 5, 3, 2]
l4.clear() #clear permet de Supprimer tous les éléments de la liste l4
print(l4) # []
Formateur : Yassine Ben Salah 62
III- Les structures de données
III.3 Les types de données
6.Les tableaux (Les listes) :
d. Liste de listes : Matrice
On peut créer une liste de listes, qui s’apparente à un tableau à
deux dimensions (ligne, colonne) appelé matrice
Soit M une matrice carrée de taille (3*3) suivant :
8 10 2

3 7 12

25 10 5

1. Déclarer cette matrice M


2. Afficher l’élément correspondant à la ligne 2 et la colonne 3
3. Remplacer l’élément correspondant à la ligne 2 et la colonne 3
par 6
4. Afficher la matrice M

Formateur : Yassine Ben Salah 63


III- Les structures de données
III.3 Les types de données
6.Les tableaux (Les listes) :
Solution : Taper et exécuter le code suivant

print ('Liste des liste : Matrice ')


M=[[8,10,2],[3,7,12], [25,10,5]] #Déclaration d'une matrice M

print(M[1][2]) #Affichage de l'élément d’indice L2 et c3

M[1][2]=6 #Remplacer l'élément d’indice L2 et c3 par 6

print(M) #Affichage de la matrice M

Formateur : Yassine Ben Salah 64


III- Les structures de données
III.3 Les types de données
Remarques :
Python est un langage dynamique : on peut changer le contenu de
variable, et le type sera changer automatiquement,
Activité : Taper et exécuter le code suivant
x=5
print(type(x)) # <class 'int'>
x='Bonjour'
print(type(x)) # <class 'str'>
x=False
print(type(x)) # <class 'bool'>
x=12.75
print(type(x)) # <class ‘float'>
x=7-3j
print(type(x)) # <class ‘complex'>

Formateur : Yassine Ben Salah 65


III- Les structures de données
III.3 Les types de données
Remarques :
Autre truc qui existe exclusivement avec python, c'est l’affectation
multiples (= multiple assign )
Activité : Taper et exécuter le code suivant
x,y,z =100,5.9,'Bonjour‘ #Multiple assign
print(x) #100
print(y) #5.9
print(z) #’Bonjour’

a=b=c=1
print(a)
print(b)
print(c)

Formateur : Yassine Ben Salah 66


III- Les structures de données
III.3 Les types de données
Activité : On se propose d’écrire un code en python qui permet la
permutation des valeurs des variables a=15 et b=20
Taper et exécuter le code suivant

a=15
b=20
a,b=b,a
print(a) #20
print(b) #15

Formateur : Yassine Ben Salah 67


III- Les structures de données
III.3 Les types de données
Remarques : Cast en python
Transtyper ou cast (en anglais) une variable : c’est-à-dire convertir une variable d'un
type à un autre
Activité : Taper et exécuter le code suivant
x=5
print('le type de x est : ')
print(type(x))
x=str(x) #str permet de transformer le type entier en string
print('le type de x est devenu : ')
print(type(x))
N.B. :
• Nom_var=str(Nom_var): permet de transformer une variable de type entier, réel, liste en
une chaîne
• Nom_var=int(Nom_var) : permet de convertir une variable de type chaîne ou réel en entier
• Nom_var=float(Nom_var) : permet de convertir une variable de type chaîne ou entier en
réel
• Nom_var=list(Nom_var) : permet de convertir une variable de type chaîne en une liste
68
IV- Les Entrées-Sorties en Python
L’utilisateur à besoin d’interagir avec le programme, on doit pouvoir
saisir ou entrer des informations, ce qui est généralement fait depuis
une lecture au clavier. Inversement, on doit pouvoir afficher ou sortir
des informations, ce qui correspond généralement à une écriture
sur l’écran.

Entrée Sortie

Formateur : Yassine Ben Salah 69


IV- Les Entrées-Sorties en Python
La fonction input() effectue toujours une saisie en mode texte (la
valeur retournée est une chaîne) dont on peut ensuite changer le type
(on dit aussi « transtyper » ou cast en anglais)
Activité : Taper et exécuter le code suivant
f1=input("Entrez un flottant : ")
print(type(f1)) #<class ’str’>
f2=float(input("Entrez un autre flottant : "))
print(type(f2)) #<class ’float’>
x=input("Entrez un entier : ")
print(type(x)) #<class ’str’>
x=int(input("Entrez un entier : "))
print(type(x)) #<class ’int’>
y=int(input("Entrez un entier : ")) + 1

Formateur : Yassine Ben Salah 70


IV- Les Entrées-Sorties en Python
La fonction print() permet d’afficher ou sortir des informations
sur écran
Activité : Taper et exécuter le code suivant

a=float(input("Entrez un flottant : "))


b=int(input("Entrez un entier : "))
print("La somme de ",a," + ", b, " = ",a+b)
y=int(input("Entrez un entier : ")) + 1
print(y)
#Pour afficher par exemple ‘@’ en fin de ligne on utilise end="@"
print(y, end="@")

Formateur : Yassine Ben Salah 71


IV- Les Entrées-Sorties en Python

L’affichage formaté
La méthode format() permet de contrôler toutes sortes d’affichages
Activité : Taper et exécuter le code suivant

#Affichage formaté : méthode format()


print("{}{}{}".format("Ali ","Ameni ","Salah ")) #Ali Ameni Salah
print("{1}{0}{2}".format("Ali ","Ameni ","Salah ")) #Ameni Ali Salah
print("Je m'appelle {}".format("Ali")) #Je m'appelle Ali

Produit=['papier','enveloppe','chemise', 'encre']
Quantite=[10, 20, 25, 30]
print("nous avons {1[3]} bouteilles d'{0[3]} et {1[2]} rames de {0[0]} en stock".format(Produit, Quantite))
#nous avons 30 bouteilles d'encre et 25 rames de papier en stock

Formateur : Yassine Ben Salah 72


IV- Les Entrées-Sorties en Python
N.B. : Les séquences d’échappement
À l’intérieur d’une chaîne, le caractère antislash (\) permet de donner
une signification spéciale à certaines séquences de caractères :

Formateur : Yassine Ben Salah 73

Vous aimerez peut-être aussi