0% ont trouvé ce document utile (0 vote)
11 vues119 pages

Python_s4

Python est un langage de programmation interprété, multi-paradigme, avec un typage dynamique et une gestion automatique de la mémoire. Il est connu pour sa simplicité, sa flexibilité et sa large utilisation dans divers domaines, allant de l'administration système au développement web. Les fonctionnalités incluent des structures de contrôle, des fonctions, des listes, et une syntaxe claire qui favorise la lisibilité du code.

Transféré par

aytoukdimabdrahim
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
11 vues119 pages

Python_s4

Python est un langage de programmation interprété, multi-paradigme, avec un typage dynamique et une gestion automatique de la mémoire. Il est connu pour sa simplicité, sa flexibilité et sa large utilisation dans divers domaines, allant de l'administration système au développement web. Les fonctionnalités incluent des structures de contrôle, des fonctions, des listes, et une syntaxe claire qui favorise la lisibilité du code.

Transféré par

aytoukdimabdrahim
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 119

ALGORITHMIQUE/Langage

Python
MSEI-1 2024/2025
Pr. Benomar Kawtar
Présentation
Définition :
Python est un langage de programmation interprété multi plateforme dont la première version
a été proposée fin des années 1980 par le programmeur néerlandais Guido Van Rossum.
Python est un langage de programmation multi paradigme (programmation orientée objet et la
programmation structurée). Il utilise le typage dynamique et la gestion de la mémoire
automatique (via un garbage collector).

Problème Algorithme Programme Python


Présentation
▪ Les programmes Python sont 3 à 5 fois plus courts que ceux écrits en C ou C++, par exemple.

▪ Supporte la programmation Orienté objet .

▪ Libre : utilisation sans restriction dans les projets commerciaux ;

▪ Interprété : Python est doté d’un interpréteur. Il lit le code source, le convertit en une forme
intermédiaire appelée bytecode, puis exécute ce bytecode, souvent dans une machine
virtuelle (PMV). Cela rend le code source flexible et portable.

▪ Un typage dynamique : On n’a pas besoin de déclarer explicitement les types des variables.
Les types sont déduits au moment de l'exécution, ce qui rend le code plus court et plus
flexible.
Instructions de lecture et écriture
Pourquoi
▪ Simplicité et code moins volumineux
#include <stdio.h>
int main(void) { print("hello, world")
printf("hello, world\n");
Langage Python
}
Langage C
▪ Très bien documenté

▪ Grande communauté

▪ Utilisé partout (Administration système, applications bureau, web, mobile …etc.


Environnement de Développement Intégré
Les versions de Python
▪ Python 3 a été sortie en 2008.

▪ La syntaxe de Python 3 n’est pas rétro-compatible.

▪ La version 2 existe toujours au sein des systèmes complexes et des systèmes d’exploitation
mais ne sera plus mis à jour et ne recevra plus de mises à jour de sécurité.

▪ Les versions actuelles de Python sont de 2.7.x et 3.12.x

▪ Il est possible d’installer plusieurs versions de python sur la même OS.


Syntaxe de base
Variables

Pas besoin de déclarer ou typer explicitement une variable avant de lui affecter une valeur
(Typage Dynamique). Exemple:
x = 120 x est de type (int)
y = "Bonjour" y est de type (str)
Le nom d’une variable peut commencer par n'importe quelle lettre minuscule ou majuscule ou
un ‘_’, puis des lettres, des chiffres ou des '_'.
Les noms de variables sont sensibles à la casse (age, Age et AGE sont trois variables
différentes)
Une variable sans valeur est définie par : x = None (None est l'équivalent de null dans d'autres
langages).
Syntaxe de base
Types

int Nombre entier


▪ Une variable définie en dehors de
float Nombre à virgule flottante
toutes les fonctions est globale.
complex Nombre complexe ▪ Par défaut, une variable est toujours
str Chaîne de caractère locale, donc disponible seulement dans

list Liste de longueur variable la fonction dans laquelle elle est définie.

file Fichier

bool Booléen

module module

N.B: pour connaître le type d’une variable X, utiliser la fonction type(X)


Syntaxe de base
Opérateurs

▪ Un commentaire commence par le caractère # et s’étend jusqu’à la fin de la ligne


Exemple : >>> print(1+1) # Ceci est un commentaire
▪ Opérateurs logiques : and, or, not
▪ Opérateurs de comparaison : >, >=, ==, <=, <, !=
▪ Opérations mathématiques : +, -, *, /, **(puissance), //(divisionentière), %(modulo).
▪ Opérations d’affections : =, +=, -=, *=, /=
Syntaxe de base
Opérateurs

Opérateurs Opérateurs
Opérateurs numériques Opérateurs logiques
alphanumériques relationnels
Algorithmique
+, - , * , ./ , ^ , ,/, % + >, < , =, <= , =>, != Et, Ou, Non
Programmation Python
+, - , * , / , ** , // , % + >, < , ==, <= , =>, != and, or, not
Syntaxe de base
Fonctions E/S

▪ Python utilise la fonction print() pour afficher sur la sortie principale (généralement le
terminal ou le script a été lancé)
Exemple : print("Hello World !!")
print(1+1)
print(myfunc())
▪ Pour lire une valeur depuis le terminal, la fonction utilisée est la fonction input()
Exemple: num = input("Saisir un numéro de votre choix")
N.B: La variable retournée par input() est TOUJOURS de type str.
Syntaxe de base
Notion de Bloc

▪ Un bloc d'instructions est une suite d'instructions qui est


alignée sur la même tabulation.
▪ Python utilise l’indentation tandis que d’autres langages
délimitent un bloc par les symboles {} , ou BEGIN -END
▪ Les blocs sont utilisés pour définir les corps des fonctions,
des boucles, des classes...
N.B: Les variables définis dans un bloc sont locales pour ce bloc
et ne sont accessible qu’à l’intérieur.
Syntaxe de base
Les Conditions

▪ L’instruction if permet de réaliser un traitement conditionnel selon une


condition booléenne.

if condition_1:
BLOC 1
elif condition_2:
# Equivalent à else if
BLOC 2
else:
BLOC 3
▪ Les conditions peuvent aussi être utilisés inline :
A = value1 if condition else value2
Syntaxe de base
Les Conditions : Structure sélective simple

Si la condition est vraie alors le bloc d’instructions sera exécuté, sinon il sera ignoré.
Syntaxe de base
Les Conditions : Structure sélective simple

Exemple : Un programme python qui trouve la valeur absolue d’une variable x.


Syntaxe de base
Les Conditions : Structure alternative
Syntaxe de base
Les Conditions : Structure alternative

Exemple : Écrire un programme qui décide si un étudiant est admis ou non en fonction de sa moyenne générale.
Syntaxe de base
Les Conditions : Structure alternative imbriquée

Exemple : Un algorithme qui demande un entier à l’utilisateur, et l’informe ensuite s’il est positif, négatif
ou nul.
Syntaxe de base
Les Conditions : Structure alternative imbriquée
Syntaxe de base
Les Conditions : Structure à choix multiple

La fonctionnalité match n’a été introduite que dans Python 3.10 et les versions ultérieures,
Syntaxe de base
Les Conditions : Structure à choix multiple

Exemple : Un algorithme et le programme Python permettant de convertir les chiffres de 1 à 5 en lettres.


Syntaxe de base
Les Boucles : for

▪ L’instruction for permet de répéter un traitement un


nombre défini de fois soit en utilisant la fonction range()
Le nombre 1 est impair
soit en itérant sur une liste. Le nombre 2 est pair
Le nombre 3 est impair
for i in range (1,11) :
Le nombre 4 est pair
if i % 2 == 0 :
Le nombre 5 est impair
print("Le nombre ", i, "est pair")
Le nombre 6 est pair
else:
Le nombre 7 est impair
print("Le nombre ", i, "est impair")
Le nombre 8 est pair
▪ Pour i dans l’intervalle de 1 (inclus) à 11 (exclus) afficher si i Le nombre 9 est impair
Le nombre 10 est pair
est pair ou impair.
▪ la variable i est déclaré dans la boucle for et prend toutes les
valeurs à chaque tour.
Syntaxe de base
Les Boucles : for
Syntaxe de base
Les Boucles : for

La boucle for est généralement utilisée lorsque le nombre d'itérations est connu à l'avance ou lorsque vous devez itérer sur
une séquence (comme une liste, tableau, …).
Syntaxe de base
Les Boucles : for

Exemple : Écrire un programme Python qui calcule la somme des N premiers nombres entiers positifs, où N est
un nombre entier fourni par l'utilisateur. (exemple pour N=5 ➔ somme : 1+2+3+4+5 = 15)
Syntaxe de base
Les Boucles : while

L’instruction while permet de répéter un traitement tant que la


condition est évaluée à True.

While condition:
INSTRUCTIONS
INSTRUCTIONS
INSTRUCTIONS
Syntaxe de base
Les Boucles : while

La boucle while s'emploie quand le nombre exact d'itérations reste indéterminé avant l'exécution. Elle réitère les
instructions contenues dans son bloc tant que la condition évaluée demeure vraie.
Syntaxe de base
Les Boucles : while

Problème : un programme Python qui invite l'utilisateur à décider du moment de quitter le programme. L'utilisateur
doit pouvoir continuer à interagir avec le programme jusqu'à ce qu'il choisisse explicitement de le terminer en
entrant le caractère « y ».
Syntaxe de base
Les Boucles : FAIRE … TANT QUE

Problème: Écrire un programme dans lequel l'utilisateur devine un nombre secret prédéfini par le programme.
Après chaque tentative, le programme indique si l'utilisateur a deviné correctement ou non.
Syntaxe de base
Les Boucles : while

L'instruction break permet d'arrêter une boucle avant sa fin.


while condition :
if condition2:
break # si condition2 est vérifiée
# on passe à instruction1
BLOC D’INSTRUCTIONS
instruction 1
L'instruction continue est similaire, mais au lieu d'interrompre
la boucle, on saute à la prochaine itération de la boucle.
Syntaxe de base
Les fonctions

Problème: Écrire un programme python qui calcule la factorielle des entiers 3, 13, 25 et 40.

def factorielle(n):
fact = 1
for i in range(1, n + 1):
fact *= i
return fact

# Appel de la fonction factorielle


fact_3=factorielle(3)
fact_5=factorielle(5)
fact_9=factorielle(9)

# Calcul et affichage de la factorielle pour chaque entier


print(f"La factorielle de 3 est {fact_3}.")
print(f"La factorielle de 5 est {fact_5}.")
print(f"La factorielle de 9 est {fact_9}.")
Syntaxe de base
Les fonctions
Syntaxe de base
Les fonctions

Pourquoi Utiliser des Fonctions ?

Réutilisabilité : Les fonctions peuvent être appelées plusieurs fois avec différents arguments.

Modularité : Cela aide à organiser le code en unités logiques

Maintenance : vous n'avez besoin de modifier le code qu'à un seul endroit.

Clarté : L'utilisation de fonctions avec des noms descriptifs rend le code principal plus lisible. Au lieu
de voir des formules mathématiques complexes éparpillées dans le code, vous voyez des appels de
fonction clairs qui indiquent ce qu'ils font.
Syntaxe de base
Variables locales et variables
globales

1. Variables locales
Les variables locales sont définies à l'intérieur d'une fonction et ne sont accessibles qu'à l'intérieur de
cette fonction. Une fois que l'exécution de la fonction est terminée, ces variables sont détruites.

def ma_fonction():
x = 10 # Variable locale
print("Dans la fonction, x =", x)

ma_fonction() # Affiche : Dans la fonction, x = 10


# print(x) # Cela lèverait une erreur : NameError: name 'x' is not
defined
Syntaxe de base
Variables locales et variables
globales

2. Variables globales
Les variables globales, en revanche, sont définies en dehors de toute fonction et peuvent être
accessibles depuis n'importe quelle fonction dans le même fichier. Elles conservent leur valeur tant
que le programme est en cours d'exécution.

y = 20 # Variable globale

def ma_fonction():
print("Dans la fonction, y =", y)

ma_fonction() # Affiche : Dans la fonction, y = 20


print("En dehors de la fonction, y =", y) # Affiche : En dehors
de la fonction, y = 20
Syntaxe de base
Valeur par défaut des paramètres

En Python, vous pouvez définir des valeurs par défaut pour les paramètres d'une fonction. Cela
signifie que si l'utilisateur ne fournit pas d'argument pour ce paramètre lors de l'appel de la fonction, la
valeur par défaut sera utilisée. Cela peut rendre vos fonctions plus flexibles et faciles à utiliser.

def saluer(nom, message="Bonjour"):


print(f"{message}, {nom}!")

# Appel de la fonction avec un message par défaut


saluer("Alice") # Affiche : Bonjour, Alice!

# Appel de la fonction avec un message personnalisé


saluer("Bob", "Salut") # Affiche : Salut, Bob!
Les collections
Les Listes

Les listes sont utilisées pour stocker plusieurs éléments dans une seule variable.
Les listes sont créées à l'aide de crochets.

Les éléments de liste sont ordonnés, changeables, permettent des valeurs en double et
indexés, le premier élément à l’index[0], le deuxième élément à l’index[1]…etc.
Les collections
Les Listes

Lorsque nous disons que les listes sont ordonnées, cela signifie que les éléments ont un
ordre défini, et que l’ordre ne changera pas.
Les nouveaux éléments seront placés à la fin de la liste.
Pour connaître la taille d’une liste, utiliser la méthode : len(NOM_LISTE)
Les Listes
Slicing

Vous pouvez spécifier une plage d'index en spécifiant où


commencer et où terminer la plage (Slicing) :

[ START: END: STEP]

N.B: Lors de la spécification d’une plage, la valeur de


retour sera une nouvelle liste avec les éléments spécifiés.
Les Listes
Recherche

Vous pouvez rechercher si une valeur existe dans une


liste en utilisant le mot-clé in.
Pour récupérer l’index de la première occurrence, on
utilise la méthode index().
La méthode count() permet de connaître le nombre
d’occurrence d’une valeur dans une liste.
Les Listes
Manipulation

Pour modifier la valeur des éléments dans une plage spécifique, définissez une liste avec les
nouvelles valeurs et reportez-vous à la plage de numéros d'index dans laquelle vous souhaitez
insérer les nouvelles valeurs.

Pour ajouter un élément à la fin de la liste, utilisez la méthode append() :


Les Listes
Manipulation

Pour insérer un élément de liste à un index spécifié, utilisez la méthode insert().


Pour ajouter des éléments d’une autre liste à la liste actuelle, utilisez la méthode
extend(), ou simplement l’addition classique list1+list2.
Les Listes
Manipulation

Pour supprimer un élément d’une liste, on peut également :


▪ Utiliser la méthode remove() pour supprime l'élément
spécifié en se basant sur sa valeur.
▪ Utiliser le mot clé del pour supprimer par index.
▪ Utiliser la méthode pop() qui permet de supprimer un
élément par son index et retourne sa valeur.
Les Listes
Tri

La méthode reverse() inverse l'ordre de tri actuel des


éléments.

Vous pouvez également personnaliser votre propre fonction


en utilisant l'argument key (La fonction renverra un nombre
qui sera utilisé pour trier la liste)
(le plus petit nombre en premier).
Les Listes
Copie

Vous ne pouvez pas copier une liste simplement en tapant


list2 = list1 car list2 ne sera qu’une référence à list1, et les
modifications apportées dans list1 seront automatiquement
également apportées dans list2.

Il existe plusieurs moyens de faire une copie :


▪ La méthode intégrée copy()
▪ La méthode list()
▪ L’addition avec une liste vide…
Les Listes
List Comprehension

La compréhension de liste offre une syntaxe plus courte lorsque vous souhaitez
créer une nouvelle liste basée sur les valeurs d’une liste existante.
Les Listes
List Comprehension

Exemples :
Les Listes
Unpacking

En Python, nous sommes également autorisés à extraire les valeurs d’une liste dans
des variables.
C’est ce qu’on appelle le «Déballage»
(Unpacking en Anglais).

N.B: Le nombre de variables doit correspondre au nombre de valeurs de la liste.


Les Listes
Boucles

Vous pouvez parcourir les éléments de la liste en utilisant une


boucle for classique.

Vous pouvez également parcourir les éléments de la liste et


récupérer à la fois l’élément et son index en utilisant la
méthode enumerate()
Les Listes
Méthodes Utiles

Il existe quelques méthodes qui permettent d’effectuer


des opérations utiles sur les listes.
Par exemple :
▪ sum()
▪ max()
▪ min()
▪ statistics.mean()
▪ random.choice()
Les Tuples
Les Tuples

Un tuple est une collection ordonnée et immuable et


acceptant les valeurs en double.
Les tuples sont écrits entre parenthèses.
Toutes les propriétés des listes en termes d’indexation,
recherche et Slicing sont valides avec les tuples ( ainsi que les
méthodes count() et index()).
Les Tuples
Manipulation

Les tuples ne sont pas modifiables, ce qui signifie que vous ne


pouvez pas modifier, ajouter ou supprimer des éléments une
fois le tuple créé.
Mais il existe quelques solutions de contournement.
Les Ensembles
Les Ensembles (Sets)

Un ensemble (Set) est une collection à la fois non ordonnée et non indexée.
Les ensembles sont écrits avec des accolades.

Les ensembles ne sont pas modifiables, ce qui signifie que nous ne pouvons
pas modifier les éléments une fois l'ensemble créé.
Les Ensembles
Accès et Recherche

Vous ne pouvez pas accéder aux éléments d’un ensemble en vous référant à
un index ou à une clé.

Vous pouvez parcourir les éléments de l'ensemble en utilisant une boucle for,
ou demander si une valeur spécifiée est présente dans un ensemble, en
utilisant le mot-clé in.
Les Ensembles
Manipulation

Une fois qu’un ensemble est créé, vous ne pouvez pas modifier
ses éléments, mais vous pouvez ajouter de nouveaux éléments
avec la méthode add().
Pour ajouter des éléments d’un autre ensemble dans
l'ensemble actuel, utilisez la méthode update().
Les Ensembles
Manipulation

Pour supprimer un élément d’un ensemble, utilisez la méthode


remove() ou discard().

N.B: si l'élément à supprimer n'existe pas, remove() génère


une erreur tandis que discard() ne génère aucune erreur.
Les Dictionnaires
Les Dictionnaires

Les dictionnaires sont utilisés pour stocker les valeurs de


données dans des paires : clé-valeur.
Un dictionnaire est une collection de données qui est
ordonnée*, modifiable et n'autorise pas les doublons.
Les valeurs en double remplaceront les valeurs existantes :

*Depuis Python 3.7


Les Dictionnaires
Méthodes

Il existe une méthode appelée get() qui donne la valeur


en se basant sur la clé.
La méthode keys() retournera une liste de toutes les clés
du dictionnaire.
La méthode values() retournera une liste de toutes les
valeurs du dictionnaire.
La méthode items() retournera les éléments d’un
dictionnaire, sous forme de tuples.
Les Dictionnaires
Manipulation

Vous pouvez modifier la valeur d’un élément spécifique


en vous référant à sa clé.
La méthode update() mettra à jour le dictionnaire avec
les éléments de l'argument donné.
Pour supprimer des éléments d’un dictionnaire :
• del
• pop()
Les Dictionnaires
Manipulation

Lorsque vous parcourez un dictionnaire en boucle, les


valeurs de retours ont les clés du dictionnaire, mais on
peut également travailler sur les valeurs en utilisant la
méthode values().
Les Dictionnaires
Copie

Vous ne pouvez pas copier un dictionnaire simplement


avec dict2 = dict1, car dict2 ne sera qu’une référence à
dict1, et les modifications apportées dans dict1 seront
automatiquement également apportées dans dict2.
Il existe des moyens de faire une copie, l’un d'entre eux
consiste à utiliser la méthode intégrée copy().
Tableau Comparative
Caractéristique Liste Tuple Set Dictionnaire

Définition Séquence ordonnée, Séquence ordonnée, immuable Collection non Collection de paires
modifiable ordonnée, unique clé-valeur

Syntaxe [1, 2, 3] (1, 2, 3) {1, 2, 3} {'clé': 'valeur'}

Modifiable Oui Non Oui Oui

Ordre Ordonnée Ordonnée Non ordonnée Ordonnée (depuis


Python 3.7)

Doublons Autorisés Autorisés Non autorisés Clés uniques,


valeurs autorisent
doublons
Tableau Comparative

Caractéristique Liste Tuple Set Dictionnaire

Accès aux éléments Par index (list[0]) Par index (tuple[0]) Par itération Par clé (dict['clé'])

Cas d'utilisation Liste d'éléments Séquence d'éléments constants Ensemble d'éléments Associer des clés à
modifiables uniques des valeurs

Performance d'accès Très rapide (O(1)) Très rapide (O(1)) Pas d’index Très rapide (O(1))

Performance de Rapide (O(n)) Rapide (O(n)) Très rapide (O(1)) Très rapide (O(1))
recherche pour les clés
Cas d’utilisation
Liste

❖ Stocker une série d'éléments modifiables


Exemple : Une liste de courses, où vous pouvez
ajouter ou supprimer des éléments.
❖ Manipuler une collection d'éléments ordonnés :
Exemple : Gérer une file d'attente (FIFO - First
In, First Out).
Cas d’utilisation
Liste

❖ Parcourir et filtrer des données :


Exemple : Extraire uniquement les nombres pairs d'une liste.
Cas d’utilisation
Tuple

❖ Stocker des données immuables :


Exemple : Coordonnées géographiques (latitude,
longitude) qui ne changent pas.
❖ Retourner plusieurs valeurs depuis une fonction :
Exemple : Fonction qui retourne les quotient et reste
de la division.
❖ Utiliser des tuples comme clés dans un dictionnaire :
Exemple : Associer des coordonnées à un nom de ville.
Cas d’utilisation
Set

❖ Éliminer les doublons dans une collection :


Exemple : Obtenir une liste unique d'éléments.
❖ Opérations ensemblistes :
Exemple : Trouver les éléments communs entre
deux ensembles.
❖ Tester l'appartenance rapidement : Exemple :
Vérifier si un élément existe dans un ensemble.
Cas d’utilisation
Dictionnaire

❖ Associer des données structurées :


Exemple : Stocker des informations sur un
utilisateur.
❖ Comptage d'éléments :
Exemple : Compter le nombre d'occurrences de
chaque mot dans une phrase.
❖ Recherche rapide par clé :
Exemple : Rechercher des prix de produits par nom.
Les Strings
Chaînes de Caractères

Comme beaucoup d'autres langages de


programmation populaires, les chaînes en Python
sont des tableaux d'octets représentant des
caractères Unicode. Pour obtenir la longueur d'une
chaîne, utilisez la fonction len().
Pour vérifier si une certaine phrase ou caractère est
présent dans une chaîne, nous pouvons utiliser le
mot-clé in.
Les Strings
Manipulation des Strings

Python a un ensemble de méthodes intégrées que vous pouvez


utiliser sur des chaînes.
La méthode upper() renvoie la chaîne en majuscules.
La méthode lower() renvoie la chaîne en minuscules.
La méthode strip() supprime tous les espaces du début ou de la fin.
La méthode replace() remplace une chaîne par une autre chaîne.
Les Strings
Manipulation des Strings

La méthode split() renvoie une liste dans laquelle le texte entre le


séparateur spécifié devient les éléments de la liste. L’inverse est la
méthode join().
Pour concaténer ou combine deux chaînes ou plus, utiliser
l'opérateur +.

N.B : La concaténation entre string et nombre donne une erreur.


Les Strings
Formatage

Utilisez l’opérateur modulo (%) pour insérer des nombres dans des chaînes .
Les Strings
Formatage

Utilisez la méthode format() pour insérer des nombres dans des chaînes.

Vous pouvez utiliser des numéros d'index {0} pour vous assurer que les
arguments sont placés dans les bons espaces réservés
Les Strings
Formatage

Dans Python, f-strings est un mécanisme de mise en forme de chaînes qui


permet d’intégrer des expressions Python dans des chaînes de caractères.
Les Fonctions
Les Fonctions

Une fonction est un bloc de code qui ne s'exécute que lorsqu'elle est
appelée. Vous pouvez transmettre des données, appelées paramètres, à une
fonction. Une fonction peut renvoyer des données en conséquence. En
Python, une fonction est définie à l'aide du mot-clé def :
Les Fonctions
Arguments (args)

Les informations peuvent être transmises aux


fonctions en tant qu'arguments.
Par défaut, une fonction doit être appelée avec le
nombre correct d'arguments. Cela signifie que si la
fonction attend 2 arguments, elle doit être appelée
avec 2 arguments, pas plus, ni moins.
Les Fonctions
Arguments arbitraires (*args)

Si le nombre d'arguments de la fonction est inconnus on utilise le symbole


«*» avant le nom du paramètre dans la définition de la fonction.
De cette façon, la fonction recevra un tuple d'arguments et pourra accéder
aux éléments en conséquence :
Les Fonctions
Arguments de mots-clés
(kwargs)

On peut également envoyer des arguments avec la syntaxe clé = valeur. De


cette façon, l'ordre des arguments n'a pas d'importance.
Les Fonctions
Arguments arbitraires de
mots-clés (**kwargs)

Si le nombre d'arguments de la fonction est inconnus on utilise le symbole


«**» avant le nom du paramètre dans la définition de la fonction. De cette
façon, la fonction recevra un dictionnaire d'arguments et pourra accéder aux
éléments en conséquence :
Les Fonctions
Valeurs par Défaut

On peut spécifier une valeur par défaut pour un argument donné. Cette valeur sera
utilisée si aucune valeur de cet argument n’est fournie.

N.B : Les arguments à valeurs par défaut doivent être obligatoirement placé en dernier.
Les Fonctions
Valeur de retour

Pour laisser une fonction renvoyer une valeur, utilisez l' instruction return :

N.B : Si aucune valeur n’est retournée par la fonction, La valeur None est retournée par défaut.
Les Fonctions
Les fonctions Lambda

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.
Utilisez les fonctions lambda lorsqu'une fonction
anonyme est requise pendant une courte période.
Les modules
Les modules

Un module est identique à une bibliothèque de codes.


Un fichier contenant un ensemble de fonctions que vous souhaitez inclure dans un
autre script/application est considéré également comme un module.

mymodule.py
Les modules
Les modules

Vous pouvez créer un alias lorsque vous importez


un module, en utilisant le mot clé « as ».

Il existe une fonction intégrée nommé dir() pour


lister tous les noms de fonctions (ou noms de
variables) dans un module.
Les modules
PIP

PIP est un gestionnaire de packages pour les packages/ modules python.


❑ Pour vérifier si PIP est installé
❑ Pour télécharger un package
❑ Pour supprimer un package
❑ Pour lister les packages
Gestion des Fichiers
Gestion des Fichiers

La gestion des fichiers est une partie importante de toute application Web/Desktop.
Python a plusieurs fonctions pour créer, lire, mettre à jour et supprimer des fichiers. La
fonction clé pour travailler avec des fichiers en Python est la fonction open(). La
fonction open() prend deux paramètres :
❑ Nom ou chemin de fichier
❑ Mode d’ouverture .
Gestion des Fichiers
Modes d’ouverture
Gestion des Fichiers
Lecture de Fichier

La fonction open() renvoie un objet fichier, qui a une


méthode read() pour lire le contenu du fichier.
Vous pouvez renvoyer une ligne en utilisant la
méthode readline(). En parcourant le fichier avec une
boucle for, vous pouvez lire l'intégralité du fichier,
ligne par ligne. Il est recommandé de toujours fermer
le fichier à la fin.
Gestion des Fichiers
Ecriture dans un Fichier
Gestion des Fichiers
Suppression d’un Fichier

Pour supprimer un fichier, vous devez importer le


module OS et exécuter la fonction os.remove().
N.B: La suppression d’un fichier inexistant soulève une exception.

Pour supprimer un dossier entier, utilisez la méthode


os.rmdir() ou os.removedirs().
N.B: vous ne pouvez supprimer que les dossiers vides .
Gestion des Fichiers
Manipulation des
Fichiers

Utiliser le module shutil pour :


❑ Copier un Fichier : shutil.copy()
❑ Déplacer un Fichier : shutil.move()
Utiliser le module path pour :
❑ Vérifier l’existence d’un fichier/dossier : exists, isfile(), isdir(), …etc.
❑ Toutes les opérations concernant les chemins de fichiers : abspath(), dirname(), …etc.
Gestion des Fichiers
Manipulation des
Fichiers

➢ Lister le contenu d’un dossier en utilisant la


méthode os.listdir().
➢ Créer un dossier en utilisant os.mkdir() ou
os.makedirs().
➢ Renommer un fichier en utilisant la méthode
os.rename().
Programmation orienté objet
La Programmation
Structurée

La programmation fonctionnelle (également qualifiées de structurées) met en évidence


les fonctions à assurer et proposent une approche hiérarchique descendante et
modulaire.
L'approche fonctionnelle dissocie
le problème de la représentation
des données, du problème du
traitement de ces données.
Programmation orienté objet
La Programmation
Orientée Objet

La programmation orientée objets (POO) consiste en une structuration de plus haut


niveau. Il s’agit de regrouper ensemble les données et toutes le procédures et fonctions
qui permettent la gestion de ces données. On obtient alors des entités comportant à la
fois un ensemble de données (attributs) et une liste de procédures et de fonctions
(méthodes) pour manipuler ces données. La structure ainsi obtenue est appelée : Objet.
Programmation orienté objet
Caractéristiques de la P.O.O

❑ Notion de classe
Une classe est un type de données abstrait qui précise des caractéristiques (attributs et
méthodes) communes à toute une famille d'objets et qui permet de créer (instancier) des
objets possédant ces caractéristiques.
Programmation orienté objet
Caractéristiques de la P.O.O

❑ Notion de classe
Un objet est une variable caractérisée par des propriétés et des méthodes. La définition
de ces propriétés et de ces méthodes devra être réalisée dans une structure de données
appelée classe.
Une classe est donc le support de l’encapsulation : c’est un ensemble de données et de
fonctions regroupées dans une même entité. Les données seront généralement
appelées des attributs, les fonctions qui opèrent sur ces attributs sont appelées des
méthodes.
Créer un objet depuis une classe est une opération qui s’appelle l’instanciation. L’objet
ainsi créé pourra être appelé aussi : instance.
Entre classe et objet il y a le même rapport qu’entre type de données et variable.
Programmation orienté objet
Caractéristiques de la P.O.O

❑ Notion d’objet
On dit qu’un objet est une instance de classe. Nous pouvons donc avoir plusieurs objets
pour une même classe. Chacun des objets a des valeurs qui lui sont propres pour les
attributs.
Programmation orienté objet
Caractéristiques de la P.O.O

❑ Notion des attributs


En Python les attributs peuvent être ajoutés
dynamiquement même après l’instanciation de
l’objet.
Pour accéder à un attribut, on utilise la variable qui
contient la référence à l’objet et on met un point « . »
puis le nom de l’attribut.
Programmation orienté objet
Caractéristiques de la P.O.O

❑ Notion des méthodes


Pour définir une méthode, il faut :
▪ indiquer son nom (ici deplace()).
▪ indiquer les arguments entre des
parenthèses.
N.B: Le premier argument d’une méthode doit être obligatoirement self.
Programmation orienté objet
Caractéristiques de la P.O.O

❑ Le constructeur
Un constructeur est une méthode, sans valeur de
retour, qui porte un nom imposé par le langage
Python : __init__().
Cette méthode sera appelée lors de la création de
l’objet. Le constructeur peut disposer d’un nombre
quelconque de paramètres, éventuellement aucun.
Programmation orienté objet
Caractéristiques de la P.O.O

❑ Notion d’encapsulation
Le concept d'encapsulation est un concept très utile de la POO. Il permet
en particulier d’éviter une modification par erreur des données d’un
objet.
En effet, il n’est alors pas possible d’agir directement sur les données d’un
objet; il est nécessaire de passer par ses méthodes qui jouent le rôle
d’interface obligatoire.
Programmation orienté objet
Caractéristiques de la P.O.O

❑ Définition d’attributs privés


On réalise la protection des attributs de notre classe
Point grâce à l’utilisation d’attributs privées. Pour
avoir des attributs privés, leur nom doit débuter par
__ (double underscore). Il n’est alors plus possible de
faire appel aux attributs privés depuis l’extérieur de la
classe.
Programmation orienté objet
Caractéristiques de la P.O.O

❑ Accesseurs et mutateurs
Il faut disposer de méthodes qui vont permettre par
exemple de modifier ou d’afficher les informations
associées aux variables privées (accesseurs et
mutateurs).
Programmation orienté objet
Caractéristiques de la P.O.O

❑ Attributs et méthodes de classe


Parfois il est utile de partager des attributs et
méthodes entre toutes les instances de la même
classe. Dans ce cas, il serait préférable d’utiliser des
attributs et méthodes de classe.
Programmation orienté objet
Caractéristiques de la P.O.O

❑ Héritage Python
L'héritage nous permet de définir une classe qui hérite de toutes les méthodes et
propriétés d'une autre classe.
▪ La classe parente est la classe héritée, également appelée classe de base.
▪ La classe enfant est la classe qui hérite d'une autre classe, également appelée
classe dérivée.
Programmation orienté objet
Caractéristiques de la P.O.O

❑ Héritage Python : Exemple


Programmation orienté objet
Caractéristiques de la P.O.O

❑ Héritage Python : super()


Python a également une fonction super() qui remplace le nom de la classe parente
dans la classe enfant.
Les Exceptions
Gestion des Exceptions

❑ Qu'est-ce qu'une exception ?


Une exception est un événement qui se produit pendant
l'exécution d'un programme qui perturbe le flux normal des
instructions du programme.
En général, lorsqu'un script Python rencontre une situation
qu'il ne peut pas gérer, il déclenche une exception. Une
exception est un objet Python qui représente une erreur.
Les Exceptions
Gestion des Exceptions

❑ Bloc try…except
Si vous avez du code suspect qui peut soulever une exception, vous pouvez défendre
votre programme en plaçant le code suspect dans un bloc try … except, suivie d'un bloc
de code qui gère le problème le plus élégamment possible.
Les Exceptions
Gestion des Exceptions

❑ Bloc finally
Le bloc finally, s’il est spécifié, sera exécuté indépendamment du fait que le bloc d’essai
soulève ou non une erreur.
Les Exceptions
Gestion des Exceptions

❑ Lever une Exception avec raise


En tant que développeur Python, vous pouvez choisir de lancer une exception en cas de
condition. Pour lancer (ou relancer) une exception, utilisez le mot clé raise.
Les Exceptions
Gestion des Exceptions

❑ Exception Courantes
IOError : si le fichier ne peut pas être ouvert
KeyboardInterrupt : lorsqu'une touche non requise est enfoncée par l'utilisateur
ValueError : lorsque une fonction reçoit un argument incorrect.
AttributeError : lorsqu’on souhaite accéder à un attribut qui n’existe pas.
ImportError : s'il est impossible de trouver le module
MemoryError : Cette erreur est générée lorsqu'une opération manque de mémoire.
KeyError : Lors qu’on essaie d’accéder à une clé inexistante dans un dictionnaire
IndexError : pour un index inexistante dans une liste.
TypeError : quand une opération individuelle est effectuée sur un type inattendu
Les Exceptions
Gestion des Exceptions

❑ Exceptions définies par l'utilisateur


Python vous permet également de créer vos propres exceptions en dérivant des classes
à partir des exceptions intégrées standard. La définition d’exceptions personnalisés
permet de personnaliser les traitements à effectuer en cas de problèmes (Ecriture dans
un fichier log, stockage dans une base de donnée, etc.)
Les Dates
Gestion des Dates

❑ Python Dates
Une date dans Python n’est pas un type de données qui lui est propre, mais nous
pouvons importer un module nommé datetime pour travailler avec les dates.
Les 4 principales classes d'objets utilisées dans le module datetime sont :
➢ datetime
➢ date
➢ time
➢ timedelta
Les Dates
Gestion des Dates

❑ Datetime et strftime
Le module datetime contient la classe datetime qui se
charge des opérations sur les dates nécessitant les date
et le temps. L’objet datetime a une méthode pour
formater les objets de date en chaînes lisibles. La
méthode est appelée strftime() , et prend un paramètre,
format, pour spécifier le format de la chaîne retournée.
Les Dates
Gestion des Dates

❑ Datetime et strptime
L’objet datetime a une méthode nommée
strptime() pour convertir une date depuis une
chaîne de caractères vers un objet datetime.
La méthode accepte deux paramètres : la chaîne
de caractères et le format
Les Dates
Gestion des Dates

❑ Timedelta
Un objet timedelta représente la durée entre
deux dates ou heures. Nous pouvons l'utiliser
pour mesurer des intervalles de temps, ou
manipuler des dates ou des heures en les ajoutant
et en les soustrayant, etc.
Les Dates
Gestion des Dates

❑ Directives de Format

Vous aimerez peut-être aussi