Cours Python Rabat
Cours Python Rabat
Cours Python
[Link] CHIHAB
Python est un langage à typage dynamique. Le développeur n’a pas à déclarer les
variables avant de leur affecter une valeur : la création de la variable se fait au
moment où elle est utile. Il n’a pas non plus à déclarer son type : lors de son
utilisation, les opérateurs (qui sont en fait des méthodes des opérandes) en testent le
type pour vérifier s’ils sont dans leurs conditions d’utilisation.
Python est un puissant langage de programmation portable, orienté objet et dynamique, avec une
bibliothèque standard très importante.
Python a des similarités avec des langages de script comme Perl ainsi qu’avec d’autres langages comme
Java et C.
Python est un langage à typage fort : lorsqu’un opérateur reçoit deux opérandes
incompatibles, une exception est levée et l’opération n’est pas exécutée. Un langage à
typage faible aurait tenté une conversion de l’un des opérandes vers un type
compatible et effectué l’opération, au risque d’avoir un résultat inattendu : 4+"2"
doit-il fournir la chaîne "42", l’entier 6 ou une erreur ?
Le Python
Le Python
Logiciel libre.
Python gère lui-même l’espace mémoire disponible.
Il n'y a pas de pointeurs explicite en Python
Il existe des interpréteurs en Python.
Il a une importantes documentations en ligne.
Il permet:
un développement rapide et incrémentiel.
Tests et débogage outillés.
Analyse interactive de données
Utilisation du Python
Installation de python
On peut télécharger la version la plus récente du langage sur le site web officiel de Python :
Sous Windows: [Link]
Sous Linux: [Link]
Dans ce site, vous trouverez dans la section Download des logiciels d’installation automatique pour les différentes versions
de Python. Vous pouvez choisir la dernière version mais attention certains modules ne sont alors pas forcément disponibles.
Anaconda est une distribution libre et open source des langages de programmation Python et R
automatique (traitement de données à grande échelle, analyse prédictive, calcul scientifique), qui vise
à simplifier la gestion des paquets et de déploiement. Les versions de paquetages sont gérés par le
système de gestion de paquets conda. La Distribution Anaconda est utilisée par plus de 6 millions
d'utilisateurs, et il comprend plus de 250 paquets populaires en science des données adaptés pour
[Link]
Variables
Définition :
- Une variable est une zone de la mémoire dans laquelle on stocke une valeur; cette variable est définie par un nom. Pour la
machine, elle s’agit en fait d’une adresse :une zone de la mémoire).
- Les noms de variables sont des suites de lettres (non accentuées) ou de chiffres. Le premier caractère est obligatoirement une
lettre.
Exemple:
x=4
y=5
z=x+y
Print(z)
Mot Utilisation
12/30/202
Les variables
Type de variable
- Les 3 types principaux dont nous aurons besoin sont : les entiers, les flottants et les chaines de caractères.
- Il existe de nombreux autres types (e.g. complex pour les nombres complexes), c’est d’ailleurs un des gros
avantages de Python.
Déclaration et assignation
x=2 # entier
y=2,3 # flottant
z= " bonjour " # chaines de caractères
print(x)
print(y)
print(z)
Les variables
Le type complexe
- Les complexes sont écrits en notation cartésienne formée de deux
flottants.
- La partie imaginaire est suffixée par j :
Exemple:
print(3j) # 3j
print((2+3j) + (5-7j)) # (7-4j)
print((3+5j).real) # 3.0
print((3+5j).imag) # 5.0
print((abs(3+4j))) # 5.0 : module
12/30/202
Objet Python
Casting en python
Opérations de base
Opérateurs arithmétiques
Le langage Python ne possède que très peu d’opérations arithmétiques pour
manipuler les nombres. Il se résume à une calculatrice élémentaire :
Opérations de base
a+=2 a=a+2
a*=2 a=a*2
a/=2 a=a/2
a//=2 a=a//2
a**=2 a=a**2
a%=2 a=a%2
12/30/202
Opérations de base
Opérateurs de comparaison
< plus petit
<= plus petit ou égal
> plus grand
=> plus grand ou égal égal
!= Différent
is est
Quelques fonctions supplémentaires
Abs(a) Valeur absolue de a
max(...) Plus grande valeur d’une suite de nombres
min(...) Plus petite valeur d’une suite de nombres
round(a,n) Arrondi de la variable a au niveau de la nième décimale
Opérations de base
Opérateurs logiques
Opérateur Description Exemple
And Retourne True si les a<2 and a>10
deux conditions sont
vraies
Or Returns True si au a<2 or a>10
moins une condition
est vraie
not Retourne le contraire not(a<2 and a>10)
du résultat
12/30/202
Opérations de base
Opérateurs d'appartenance
c= 2+2j
d=5+3j
Effectuer les opérations suivantes entre ces deux nombres complexes :
Addition
Soustraction
Multiplication
Division
Calculer et afficher le module de chacun des nombres complexes
12/30/202
Chaînes de caractères
Chaînes de caractères
Chaînes de caractères
Chaînes de caractères
Chaînes de caractères
Chaînes de caractères
Chaînes de caractères
Extraction de sous-chaînes
- L’opérateur [ ] avec 2 ou 3 index séparés par le caractère : permet
d’extraire des souschaînes (ou tranches) d’une chaîne :
s = "master1"
print(s[1:4])
print(s[-2:]) [Link]@[Link]
print(s[:4])
print(s[4:])
print(s[::2])
Les entrées-sorties
- Les entrées
La fonction de saisie: input() effectue toujours une saisie en mode texte
Exemple:
a = input("Entrez votre nom : ")
print(type(a))
b = input("\nEntrez un flottant : ")
b = float(b) # transtypage en flottant
# ou plus simplement :
b = float(input("Entrez un autre flottant : "))
print(type(b))
12/30/202
Les entrées-sorties
Les sorties
La fonction d'affichage: print() est une fonction indispensable aux affichages dans
les scripts. import sys
Exemple: a, b = 2, 5
print(a, b) # 2 5
print("Somme :", a + b) # Somme : 7
print(a - b, "est la différence") # -3 est la différence
print("Le produit de", a, "par", b, "vaut :", a * b)
# Le produit de 2 par 5 vaut : 10
print() # affiche une nouvelle ligne
# pour afficher un espace à la place de la nouvelle ligne:
print(a, end=" " ) # 2 (et ne va pas à la ligne)
print("\nErreur fatale !", file=[Link]) # dans un fichier
print("On a <", 2**32, "> cas !", sep="###")
# On a <###4294967296###> cas !
Collections Python:
Il existe quatre types de données de collection dans le langage de programmation Python:
List est une collection ordonnée et modifiable. Permet de doubler les données.
Le tuple est une collection ordonnée et immuable. Permet de doubler les données.
Set est une collection non ordonnée et non indexée. Aucune donnée membre en double.
Dictionary est une collection non ordonnée, modifiable et indexée. Aucune donnée en double.
12/30/202
Liste
Liste:
Une liste est une structure de données qui contient une série de valeurs.
Le langage Python autorise la construction de liste contenant des
valeurs de types différents.
Syntaxe:
Éléments séparés par des virgules, et entourés de crochets.
Exemple:
couleurs = [‘blanc’, ’noir’, ’marron’, ’vert’]
Liste
Exemple:
couleurs = [’blanc’, ’noir’, ’marron’, ’vert’]
print(couleurs)
couleurs[1] = 8 # Accéder à un élément de la liste pour changer sa valeur
print(couleurs)
list1 = [’z’, ’y’]
list2 = [2, 5,’a’,7]
list3 = [list1, list2] # liste de listes
12/30/202
Liste
Liste
C. Supprimer un élément de la liste : remove(), pop(), clear(), del
Liste
Liste
E. Tranches
L’avantage des listes est la possibilité de sélectionner une partie d’une liste en utilisant un indiçage
construit sur le modèle [n:m] pour récupérer tous les éléments ou une tranche de la liste.
Exemple:
couleurs = ['blanc', 'noir', 'marron', 'vert’]
print(couleurs[0:2])
nombre=[0,1,2,3,4,5,6,7,8,9]
print(nombre[ : :2]) # pas +2
print(nombre[ : :3]) #pas +3
Liste
Liste
Liste
len():
animaux = ["chat", "chien", "oiseau"] insert():
nombres = [1, 3, 4]
print(len(animaux)) # 3 [Link](1, 2)
append(): Ajoute un élément (chaîne ou entier) print(nombres) # [1, 2, 3, 4]
à la fin de la liste. remove():
nombres = [1, 2, 3] animaux = ["chat", "chien", "oiseau", "chat"]
[Link]("chat")
[Link](4) print(animaux) # ['chien', 'oiseau', 'chat']
print(nombres) # [1, 2, 3, 4] pop():
extend(): Ajoute plusieurs éléments à la fin de la nombres = [1, 2, 3]
liste. dernier = [Link]()
print(dernier) # 3
animaux = ["chat", "chien"] print(nombres) # [1, 2]
[Link](["oiseau", "souris"])
print(animaux) # ['chat', 'chien', 'oiseau', 'souris']
12/30/202
Liste
remove(): index():
animaux = ["chat", "chien", "oiseau", "chat"] nombres = [1, 2, 3, 2]
index = [Link](2)
[Link]("chat")
print(index) # 1
print(animaux) # ['chien', 'oiseau', 'chat']
count():
animaux = ["chat", "chien", "oiseau"]
animaux = ["chat", "chien", "oiseau", "chat"]
pop(): nombre_chats = [Link]("chat")
dernier = [Link]() print(nombre_chats) # 2
print(dernier) # 'oiseau' sort():
print(animaux) # ['chat', 'chien'] nombres = [3, 1, 4, 1, 5]
[Link]()
clear():
print(nombres) # [1, 1, 3, 4, 5]
animaux = ["chat", "chien", "oiseau"] reverse():
[Link]() nombres = [1, 2, 3]
print(animaux) # [] [Link]()
print(nombres) # [3, 2, 1]
Liste
copy():
animaux = ["chat", "chien", "oiseau"]
copie_animaux = [Link]()
print(copie_animaux) # ['chat', 'chien', 'oiseau']
12/30/202
Exercice 1 :
Créez une liste vide appelée couleurs.
Ajoutez trois couleurs à cette liste (par exemple, "rouge", "bleu", "vert").
Supprimez la première couleur de la liste.
Affichez la liste mise à jour.
Exercice 2 :
Créez une liste de nombres appelée nombres contenant les éléments suivants :
[3, 5, 7, 9, 5, 3, 5, 3].
Comptez le nombre de fois que le nombre 3 apparaît dans la liste.
Affichez le résultat.
Exercice 3 :
Créez une liste de fruits appelée fruits avec les éléments suivants : ["pomme", "banane",
"orange", "kiwi"].
Trouvez l'indice du fruit "orange".
Exercice 4 :
Créez une liste de nombres appelée scores contenant les éléments suivants : [15, 42, 23, 8, 34].
Triez cette liste dans l'ordre croissant.
Inversez l'ordre des éléments de la liste triée.
Calculez la somme des éléments de la liste.
Calculez la moyenne des éléments de la liste
12/30/202
Les tuples
Un tuple est une collection ordonnée et non modifiable . En Python, les n-uplets sont écrits avec
des parenthèses ().
Exemple:
tuple1= (85, 3, [‘a’, 11])
print(tuple1)
Remarque
q Les tuples s'utilisent comme les listes mais leur parcours est plus rapide.
q Ils sont utiles pour définir des constantes.
Les tuples
Les tuples
Parcourir un tuple:
tuple2=(‘noir’,’blanc’,’vert’)
for x in my_tuple:
print(x)
Les tuples
Les tuples
Exercice 1 :
Créez un tuple appelé mois contenant les noms des 12 mois de l'année : "Janvier", "Février", "Mars",
"Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre".
Affichez le premier et le dernier mois de l'année en utilisant l'indexation des tuples.
Utilisez le slicing pour afficher les trois premiers mois.
12/30/202
q Un ensemble est une collection non ordonnée et non indexée. En Python, les ensembles sont écrits avec
des accolades.
q Les éléments d'un ensemble apparaîtront dans un ordre aléatoire.
my_set={'5','45','5','noir'}
type(my_set)
print(my_set)
- Parcourir un ensemble :
my_set={'5','45','5','noir'}
for x in my_set:
print(x)
Supprimer un élément
my_set ={'5','45','15','noir'}
my_set.remove("5")
print(my_set)
Exercice:
- Créez un ensemble appelé etudiant1 contenant les compétences suivantes :
"Python","Java","SQL",JavaScript","HTML"
- Créez un autre ensemble appelé etudiant2 contenant les compétences suivantes :
"JavaScript", "HTML", "CSS", "React"
Écrivez un programme pour :
Afficher les compétences de l’étudiant1.
Trouver et afficher les compétences communes entre les deux ensembles.
Ajouter une nouvelle compétence, "Django", à l'ensemble etudiant2.
Afficher l'ensemble mis à jour des compétences du développeur.
Les dictionnaires
q Un dictionnaire est une collection non ordonnée, modifiable et indexée de couples cle :
valeur entourée d’accolades.
q Les couples de cle : valeur n’occupent pas un ordre immuable, leur emplacement est géré
par un algorithme utilisant les fonctions de hachage.
12/30/202
Les dictionnaires
- Une clé pourra être alphabétique, numérique ou tout type hachable. Les valeurs
pourront être des valeurs numériques, des séquences, des dictionnaires, mais aussi des
fonctions, des classes ou des instances.
- Exemple:
etat = {}
etat [" nom "] = " xxxx "
etat [" prenom "] = "yyyy"
etat [" age "] = 22
print(etat)
Exécution : {' nom ': ' xxxx ', ' prenom ': 'yyyy', ' age ': 22}
Les dictionnaires
Les dictionnaires
Les dictionnaires
Les dictionnaires
Les dictionnaires
Exercice 1 :
Créez un dictionnaire appelé carnet_adresses qui contient les informations suivantes pour trois
contacts :
Nom : "amine", "hicham", "Nora"
Téléphone : "06123456789", "06987654321", "066147258369"
Email : "amine@[Link]", "hich@[Link]", "nora@[Link]"
Écrivez un programme pour :
Afficher les informations de chaque contact.
Ajouter un nouveau contact : "yassine", "06771234567", "yas@[Link]".
Modifier le numéro de téléphone de "Nora" en "0655555555".
Supprimer le contact "hicham".
Afficher le carnet d'adresses mis à jour
Exemple 2:
liste=[3,12,13,14,11]
for i in liste:
if i%2==2:
print(i, " est pair")
else :
print(i," est impair")
Exemple 3
a=15
b=13
if a%2!=0 and b%2!=0 :
print(a," et ",b," sont impaires")
Les boucles
Les boucles
Les boucles
La boucle for est utilisée pour parcourir une séquence (une liste, un tuple, un dictionnaire,
un ensemble ou une chaîne de caractères).
Exemple: boucle for
caracter=["a","b","c","d","e","f"]
for x in caracter:
print(x)
for x in "je suis libre":
print(x)
12/30/202
Les boucles
print(x)
for x in range(1,100,10): #range(1,100,10) correspond aux valeurs comprises entre 1 et 100 par un pas de 10.
print(x)
Les boucles
Imbrication de boucle:
for x in range(3):
for y in range(5):
print(x," ",y)
12/30/202
Les boucles
i=1
while i < 10:
print(i,end=" ")
if i == 4:
break
i += 1
Les boucles
Les fonctions
Les fonctions ont un grand avantage de découper le programme en blocs aux spécifications bien
précises.
L'instruction def définis une nouvelle fonction, elle est suivie du nom de la fonction et se termine
par ":". Le code se trouvant sous une instruction "def" devra être indenté d'une fois au moins
l’instuction def est une instruction exécutable, elle génère un nouvel objet portant le nom fourni.
Syntaxe :
def ma_fonc():
... <instruction>
Les fonctions
Les fonctions
Les fonctions
Python renvoie un tuple ou une liste de deux arguments (ou plus) est
notamment très pratique si on veut utiliser l’affectation multiple.
import math
def cos_sin(x):
return [Link](x),[Link](x)
x,y=cos_sin(0)
print(x," ",y)
12/30/202
Les fonctions
Exemple:
def fonction(arg_un=0, arg_deux=2, ..., narg=‘Bonjour'):
Les fonctions
Les variables globales:
une "déclaration" global doit se faire dans une fonction pour que la variable puisse être
utilisée depuis un autre bloc.
Exemple:
def element_negatif(liste):
nb=0
for x in liste:
if x>0:
nb+=1
return(nb)
maliste=[2,-9,-8,3,-1,4]
print(element_negatif(maliste))
12/30/202
Les fonctions
Exemple :
def puissance(x,y):
f=1
for i in range(1,y+1):
f=f*x
return (f)
x = input("Un nombre entier : ")
x=int(x)
y = input("Un nombre entier : ")
y=int(y)
z= puissance(x,y)
print(z)
Les fonctions
La récursivité :
def fact(n):
if (n<=1):
return(1)
else :
return(n*fact(n-1))
x = input("Un nombre entier : ")
x=int(x)
print(fact(x))
12/30/202
Les fonctions
Lambda
Outre l'instruction def, Python offre une autre forme pour créer des objets
fonctions, il s'agit de l'expression "lambda" .
Syntaxe: f = lambda x, y, z :
Le corps de lambda est similaire à ce que l'on place dans l'instruction return du
bloc def.
Les fonctions
Une fonction lambda est une petite fonction anonyme qui peut prendre n'importe
quel nombre d'arguments, mais ne peut avoir qu'une seule expression.
print(fonc(1,2,3))
12/30/202
Ex1:
dataset= [("kamal", 20), ("Mohamed", 21), ("karim", 32),("karima", 22),("Intissar", 50),("Ahmed",
36),("Ali", 40)]
dataset = [
{"nom": "kamal", "age": 20, "ville": "Casablanca"},
{"nom": "Mohamed", "age": 21, "ville": "Rabat"},
{"nom": "karim", "age": 32, "ville": "Tanger"},
{"nom": "Ahmed", "age": 36, "ville": "Fès"}
]
l = ['younes', 'kamal']
l_majuscule = list(map(lambda nom: [Link](), l))
print(l_majuscule
12/30/202
Les fonctions
Passage par valeur et passage par référence:
q Passage par valeur : signifie qu'on passe à la fonction lors de son appel, non pas
la référence de l'argument mais seulement sa valeur (une copie de l'argument).
q Passage par référence : signifie qu'on passe à la fonction lors de son appel une
référence de l'argument, donc essentiellement les deux références partagent la
même zone mémoire.
Les fonctions
Exemple:
def fin(L,a):
[Link](a)
L=[4,7,1,3]
fin(L,10)
print(L)
12/30/202
Les Modules
o Les modules sont des programmes Python qui contiennent des
fonctions que l’on est amené à réutiliser souvent (on les appelle
aussi bibliothèques ou librairies).
o Les développeurs de Python ont mis au point de nombreux
modules qui effectuent une quantité phénoménale de tâches.
o 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.
o La plupart de ces modules sont déjà installés dans les versions
standards de Python
o Exemple 1:
import random
random . randint (0, 500)
Les Modules
Exemple 2:
import random
random . randint (0, 1550)
dir(random)
help([Link])
Les Modules
- On peut importer une fonction spécifique d’un module donné grâce à l’instruction from.
Exemple 3:
from random import randint
randint (0 ,1550)
Les Modules
Exemple 4: Module os pour l’interaction avec le système
d’exploitation
- Tester l’existence d’un fichier sur votre disque dur.
import sys
import os
if os. path . exists ("[Link] "):
print ("le fichier est present ")
else :
[Link] (" le fichier est absent ")
12/30/202
Les Modules
Exemple 5: Création d’un module
Créer un script python portant le nom « [Link]" contenant le code suivant:
x=input("donner un nombre")
x=int (x)
y=input("donner un nombre")
y=int (y)
z=x+y
print(x,"+",y,"=",z)
- Importer le module master en tapant:
import master
help(master)
Les Modules
Les docstrings:
- Lorsqu’on écrit un module, il est important de créer de la documentation
pour expliquer ce que fait le module et comment utiliser chaque fonction.
Les exceptions
- Les langages de programmation comme Python contiennent un système de gestion des
exceptions.
- Une exception est définie comme une anomalie de l’exécution d’un programme
requérant une action spéciale, en général l’arrêt de l’exécution.
- Une exception correspond à une erreur que Python rencontre lorsqu’il tente
d’exécuter les lignes de code qu’on lui soumet.
Exemple:
Les exceptions
- L’erreur provient de la fonction int() qui n’a pas pu convertir la chaîne
de caractères "gh" en nombre entier. En termes plus techniques, on dira
que « Python a levé une exception de type ValueError ».
- Il y a de nombreux types d’exceptions différents.
- Le bloc try : permet de tester si un bloc de code contient des erreurs.
- Le bloc except : permet de gérer l'erreur.
- Le bloc finally : permet d'exécuter un code, quel que soit le résultat des blocs try et
except.
try:
#bloc try
except:
# bloc except
finally:
#bloc finally
12/30/202
Les exceptions
Exemple:
try:
x = int(input (" Entrez un nombre entier : "))
print(x)
except:
print("vous n'avez pas entré un entier")
L’exception levée par la fonction int() (qui ne peut pas convertir "hg"
en nombre entier) est interceptée et déclenche l’affichage du message
d’avertissement.
Les exceptions
- Exemple :
while True :
try:
x = int(input (" Entrez un nombre entier : "))
print(x)
break
except:
print("vous n'avez pas entré un entier")
print("Entrez un nombre entier :")
12/30/202
Les exceptions
- Division par zéro : ZeroDivisionError
Exemple:
def div(a,b):
try:
print(a/b)
except ZeroDivisionError:
print("Vous avez une division par zéro")
print("continuer")
div(4,0)
Les exceptions
Nous testons le même exemple mais avec une erreur dans le type d’un
argument.
12/30/202
Les exceptions
Solution:
Les exceptions
Les fichiers
- Python a plusieurs fonctions pour créer, lire, mettre à jour et supprimer des fichiers.
- La fonction principale pour manipuler les fichiers en Python est la fonction open().
- La fonction open() prend 8 paramètres dont les trois premiers sont: nom de fichier,
mode d'ouverture de fichier et encodage utilisé.
- Il existe quatre modes différentes pour ouvrir un fichier:
- "r" (read) : Ouvre un fichier en lecture, erreur si le fichier n'existe pas
- "a" (append): Ouvre un fichier en mode ajout, crée le fichier s'il n'existe pas.
- "w" ( Write) : Ouvre un fichier en écriture, crée le fichier s'il n'existe pas.
- "x" (Create) - Crée le fichier spécifié et renvoie une erreur si le fichier existe.
Les fichiers
- Création d’un fichier:
Pour créer un nouveau fichier en Python, on utilise la fonction open() avec l'un des paramètres
suivants:
-"x" : crée un fichier, renvoie une erreur si le fichier existe;
-"a" : crée un fichier si le fichier spécifié n'existe pas;
-"w" :crée un fichier si le fichier spécifié n'existe pas.
Exemple: création d’un fichier avec le mode "w"
f=open("[Link]","w",encoding="utf8")
for i in range(10):
[Link]("fichier "+str(i)+"\n")
[Link]()
12/30/202
Les fichiers
Les fichiers
Exemple: Le mode "x"
On ouvre le fichier crée précédemment avec le mode "x":
12/30/202
Les fichiers
La lecture d’un fichier:
Pour ouvrir un fichier en lecture, on utilise le mode "r":
f=open("[Link]","r",encoding="utf8")
Les fichiers
Exemple :read()
f=open("[Link]","r",encoding="utf8")
print([Link](9))
[Link]()
Exemple : readline()
12/30/202
Les fichiers
Exemple : readlines()
f=open("[Link]","r",encoding="utf8")
print([Link]())
[Link]()
Les fichiers
On peut également ouvrir un fichier en utilisant une boucle:
Exemple:
f=open("[Link]","r",encoding="utf8")
for line in f:
print(line)
[Link]()
12/30/202
Les fichiers
Suppression d'un fichier:
- Pour pouvoir supprimer un fichier, il faut importer le module os.
- Avant de le supprimer, il faut vérifier que le fichier existe pour ne pas générer Une erreur.
Exemple:
Les fichiers
Si on exécute le même programme:
12/30/202
Les fichiers
Gestionnaires de contexte Python
Une ressource est fondamentalement un composant informatique à disponibilité limitée, par exemple
des fichiers, des sockets réseau, etc. Le fait de refuser de libérer une ressource lorsqu'un processus a
fini de l'utiliser est appelé fuite de ressource . Un exemple serait de laisser un fichier ouvert après y
avoir écrit, rendant ainsi impossible à d'autres processus de l'acquérir.
Les fichiers
Exemple:
with open("[Link]","r",encoding="utf8") as f:
for line in f:
print(line)
- Une classe est comme un constructeur d'objets ou un modèle pour créer des objets.
Avantages de la POO
Réutilisabilité : Le code est structuré en classes, ce qui facilite la
réutilisation et la maintenance.
Lisibilité : Les classes regroupent les données et les comportements liés.
Évolutivité : Facile d'ajouter de nouvelles fonctionnalités via des sous-
classes.
Modularité : Les objets permettent de diviser le code en blocs
indépendants.
Classe :Une classe est un modèle ou un plan qui définit les propriétés et
comportements d'un objet.
Objet : Un objet est une instance concrète d'une classe.
Encapsulation : Regrouper des données et des méthodes qui les manipulent dans
une classe, en limitant l'accès direct pour protéger les données.
Héritage : Une classe peut hériter des attributs et méthodes d'une autre classe
(classe parent).
Polymorphisme : Permet aux objets de différents types d'être traités de manière
uniforme.
Abstraction : Cacher les détails d'implémentation et ne montrer que les
fonctionnalités essentielles.
12/30/202
- Dans un modèle objet pur, seules les m´méthodes d’un objet peuvent accéder aux
attributs de l’état.
12/30/202
Exemple1:
- Un modèle à partir duquel on fabrique
Exemple 2:
La fonction init () : class Etudiant:
def __init__(self,nom,prenom,cin,age,note):
- Toutes les classes ont une fonction appelée init (), print("Je l'étudiant: ")
[Link]=nom
qui est toujours exécutée lorsque un objet de la classe [Link]=prenom
[Link] = cin
est crée (constructeur). [Link] = age
[Link]= note
E1 = Etudiant("votre nom","votre prenom","age","cin","note")
- La fonction init () permet d'affecter des valeurs
print([Link])
aux propriétés de l'objet ou à d'effectuer des print([Link])
print([Link])
opérations nécessaires lors de la création d'un objet print([Link])
print([Link])
12/30/202
Exemple 3:
Méthodes d'objets: class Etudiant:
def __init__(self,nom,prenom,cin,age,note):
[Link]=nom
- Les objets peuvent également contenir [Link]=prenom
[Link] = cin
des méthodes. Les méthodes de l'objet [Link] = age
[Link]= note
sont des fonctions qui appartiennent à def affiche(self):
print("Cin: ",[Link])
l'objet. print("Name : ",[Link])
print("Cin: ",[Link])
print("Name : ",[Link])
print("Note : ",[Link])
E1 = Etudiant("younes", "CHIHAB",18,15,12)
[Link]()
class Etudiant:
Le paramètre self: def __init__(self,nom,prenom,cin,age,note):
[Link]=nom
[Link]=prenom
[Link] = cin
[Link] = age
Exemple:4 [Link]= note
def affiche(self):
print("Cin: ",[Link])
print("Name : ",[Link])
print("Cin: ",[Link])
print("Name : ",[Link])
print("Note : ",[Link])
E1 = Etudiant("younes","CHIHAB",18,15,12)
[Link]()
print("----------------------------")
[Link](E1)
class Etudiant:
- Modifier les propriétés de l'objet: def __init__(self,nom,prenom,cin,age,note):
On peut modifier les propriétés d'un objet comme suit: print("Je suis :")
[Link]=nom
[Link]=prenom
[Link] = cin
[Link] = age
Exemple: 5 [Link]= note
def affiche(self):
print("Nom: ",[Link])
print("Prenom : ",[Link])
print("Cin: ",[Link])
print("Age : ",[Link])
print("Note : ",[Link])
E1 = Etudiant("younes","CHIHAB",18,15,12)
[Link]="master"
[Link]()
12/30/202
class Etudiant:
def __init__(self,nom,prenom,cin,age,note):
Supprimer les propriétés d'un objet:
print("Je suis :")
[Link]=nom
On peut supprimer les propriétés d'un objet en [Link]=prenom
utilisant del. [Link] = cin
[Link] = age
[Link]= note
def affiche(self):
Exemple: 7 print("Nom: ",[Link])
print("Prenom : ",[Link])
print("Cin: ",[Link])
print("Age : ",[Link])
print("Note : ",[Link])
E1 = Etudiant("younes","CHIHAB",18,15,12)
del [Link]
[Link]()
class Etudiant:
def __init__(self,nom,prenom,cin,age,note):
Supprimer un objet: print("Je suis :")
On peut supprimer aussi un objet en utilisant del: [Link]=nom
[Link]=prenom
[Link] = cin
[Link] = age
[Link]= note
Exemple: 8 def affiche(self):
print("Nom: ",[Link])
print("Prenom : ",[Link])
print("Cin: ",[Link])
print("Age : ",[Link])
print("Note : ",[Link])
E1 = Etudiant("younes","CHIHAB",18,15,12)
del E1
[Link]()
12/30/202
class Etudiant:
- Pour pouvoir appeler print sur un objet def __init__(self,cin,name,note):
[Link] = cin
d'une classe, il faut implémenter la [Link] = name
[Link]= note
méthode spéciale __str__ : def __str__(self):
return(str([Link])+" "+[Link]+"
"+str([Link]))
E1 = Etudiant("E1","xxxxxx",25)
E2 = Etudiant("E2","yyyyyyy",21)
print(E1)
print(E2)
class Etudiant:
Test d'appartenance à un objet d'une classe : __contains__: def __init__(self, cin, name,note):
[Link] = cin
Pour pouvoir appliquer le test d'appartenance à un objet d'une classe, [Link] = name
[Link]= note
il faut implémenter la méthode spéciale __contains__: def __str__(self):
return(str([Link])+" "+[Link]+"
"+str([Link]))
Exemple: 10 def __len__(self):
return(len([Link]))
def __contains__(self,item):
return(item in [Link])
E1 = Etudiant("E1","xxxx",18)
print("a" in E1)
print("x" in E1)
- L'héritage est la capacité de définir une nouvelle classe qui est une version modifiée d'une
classe existante.
- Exemple: -Pour définir un tabouret:
- trois pieds.
- une assise.
- Pour définir une chaise:
- trois pieds.
- une assise
- Un dossier
- Il y a des points communs non ? Une chaise n'est rien d'autre qu'un tabouret avec un dossier.
- Les caractéristiques permettant de définir un tabouret ou une chaise sont assimilables à des
attributs. Nous pouvons donc définir une classe « tabouret » et une classe « chaise ».
Cependant, plutôt que d'écrire du code en doublon dans notre classe « chaise », nous allons
la faire hériter de la classe « tabouret », puis lui ajouter un attribut dossier.