0% ont trouvé ce document utile (0 vote)
9 vues47 pages

Syllabus de Programmation Python

Transféré par

viquelsouopgui
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)
9 vues47 pages

Syllabus de Programmation Python

Transféré par

viquelsouopgui
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

Syllabus : Programmation Structurée en Python

Objectifs du Cours
 Comprendre les principes fondamentaux de la programmation structurée.
 Acquérir des compétences en programmation avec Python.
 Développer des algorithmes et résoudre des problèmes de manière efficace.

Prérequis
 Connaissances de base en informatique.
 Familiarité avec l'utilisation d'un ordinateur.

Durée
 10 leçons (2 heures par leçon)

Plan du Cours
Leçon 1 : Introduction à Python
 Présentation de Python et de ses caractéristiques.
 Installation de Python et des outils nécessaires (IDE, interpréteur).
 Première exécution d'un programme Python.

Leçon 2 : Syntaxe de Base


 Variables et types de données (int, float, string, bool).
 Opérateurs (arithmétiques, relationnels, logiques).
 Gestion des commentaires et des chaînes de documentation.

Leçon 3 : Structures de Contrôle


 Instructions conditionnelles (if, elif, else).
 Introduction aux boucles (for, while).
 Utilisation de break et continue.

Leçon 4 : Fonctions
 Définition et appel de fonctions.
 Paramètres et valeurs de retour.
 Portée des variables (locale vs globale).
 Documentation des fonctions.

Leçon 5 : Structures de Données de Base


 Listes et opérations sur les listes.
 Tuples et ensembles.
 Dictionnaires et leurs méthodes.
Leçon 6 : Gestion des Erreurs
 Introduction à la gestion des exceptions.
 Utilisation des blocs try, except, et finally.
 Création d'exceptions personnalisées.

Leçon 7 : Fichiers et Entrée/Sortie


 Lecture et écriture de fichiers texte.
 Gestion des fichiers avec le contexte (with).
 Introduction à la manipulation de fichiers CSV.

Leçon 8 : Modules et Packages


 Importation de modules standard.
 Création de modules personnalisés.
 Introduction aux packages et gestion des dépendances.

Leçon 9 : Programmation Orientée Objet (Introduction)


 Concepts de base de la POO (classes, objets, héritage).
 Différence entre la programmation structurée et la POO.
 Création de classes simples.

Leçon 10 : Projet Final


 Développement d'un projet de programmation structuré.
 Présentation des projets par les étudiants.
 Évaluation et retours.

Méthodes d'Évaluation
 Devoirs hebdomadaires.
 Quiz en ligne.
 Projet final.

Ressources Recommandées
 Livres :
 "Automate the Boring Stuff with Python" par Al Sweigart
 "Python Crash Course" par Eric Matthes
 Sites Web :
 [Link]
 W3Schools Python Tutorial

Leçon 1 : Introduction à Python

I-Présentation de Python

Qu'est-ce que Python ?


Python est un langage de programmation de haut niveau, interprété, et orienté objet. Il a été créé par
Guido van Rossum et a été publié pour la première fois en 1991. Python est conçu pour être simple
et facile à lire, ce qui en fait un excellent choix pour les débutants tout en étant puissant pour les
experts.

Caractéristiques de Python
1. Lisibilité du Code
 La syntaxe de Python est claire et concise, ce qui facilite la lecture et la
compréhension du code.
 L'utilisation de l'indentation pour définir les blocs de code aide à structurer le code de
manière logique.
2. Langage Interprété
 Python est un langage interprété, ce qui signifie que le code est exécuté ligne par
ligne par l'interpréteur Python. Ceci facilite le débogage et permet une exécution
interactive.
3. Typage Dynamique
 Les variables en Python n'ont pas besoin d'être déclarées avec un type spécifique. Le
type est déterminé automatiquement lors de l'exécution, ce qui rend le langage
flexible.
4. Large Bibliothèque Standard
 Python dispose d'une vaste bibliothèque standard qui inclut des modules pour la
manipulation de fichiers, la gestion des dates et heures, le traitement de données, et
bien plus encore.
5. Support pour la Programmation Orientée Objet
 Python prend en charge la programmation orientée objet, permettant l'utilisation de
classes et d'objets pour structurer le code.
 Ceci favorise la réutilisation du code et la modularité.
6. Multi-paradigme
 Python supporte plusieurs paradigmes de programmation, y compris la
programmation procédurale, orientée objet, et fonctionnelle.
7. Portabilité
 Python est un langage multiplateforme, ce qui signifie que le code écrit sur un
système d'exploitation peut être exécuté sur un autre sans modifications majeures.
8. Communauté Active
 Python a une communauté large et active, offrant de nombreuses ressources,
bibliothèques tierces et frameworks pour étendre ses fonctionnalités.
9. Applications Diverses
 Python est utilisé dans divers domaines, notamment le développement web, l'analyse
de données, l'intelligence artificielle, le machine learning, l'automatisation, et bien
d'autres.
II-Installation de Python et des Outils Nécessaires

1. Télécharger Python
 Site Officiel : Allez sur [Link].
 Choisir la Version : Téléchargez la dernière version stable de Python. Pour la plupart des
utilisateurs, la version recommandée (généralement marquée comme "Latest Release") est la
meilleure option.

2. Installer Python

Windows
1. Exécuter le Programme d’Installation :
 Double-cliquez sur le fichier .exe téléchargé.
2. Options d’Installation :
 Cochez la case "Add Python to PATH" pour faciliter l'utilisation de Python depuis
la ligne de commande.
 Cliquez sur "Install Now".
3. Vérification de l'Installation :
 Ouvrez l'invite de commandes (cmd) et tapez :
 python --version

 Vous devriez voir s'afficher la version de Python installée.

macOS
1. Exécuter le Programme d’Installation :
 Ouvrez le fichier .pkg téléchargé.
2. Suivre les Instructions :
 Cliquez sur "Continuer" à travers les étapes de l'assistant d'installation.
3. Vérification de l'Installation :
 Ouvrez le terminal et tapez :
 python3 --version

 Vous devriez voir la version de Python installée.

Linux
 Python est souvent préinstallé sur de nombreuses distributions Linux. Pour vérifier, ouvrez
un terminal et tapez :
 python3 --version

 Si Python n'est pas installé, utilisez le gestionnaire de paquets de votre distribution. Par
exemple, pour Ubuntu :
bash
 sudo apt update
sudo apt install python3

3. Installer un IDE (Environnement de Développement Intégré)


Un IDE facilite l'écriture, le débogage et l'exécution de votre code Python. Voici quelques IDE
populaires :

1. PyCharm
 Téléchargement : Rendez-vous sur JetBrains PyCharm.
 Installation : Suivez les instructions pour votre système d'exploitation.
 Configuration : Lancez PyCharm et configurez un nouveau projet en sélectionnant
l'interpréteur Python installé.

2. Visual Studio Code (VS Code)


 Téléchargement : Allez sur Visual Studio Code.
 Installation : Suivez les instructions pour votre système d'exploitation.
 Extensions : Installez l'extension Python depuis le Marketplace de VS Code pour bénéficier
d'une meilleure prise en charge de Python.

3. Jupyter Notebook
 Installation via pip : Si vous avez installé Python, vous pouvez installer Jupyter Notebook
en utilisant pip. Ouvrez un terminal ou une invite de commandes et tapez :
bash
 pip install notebook

 Lancer Jupyter Notebook : Dans le terminal, tapez :


bash
 jupyter notebook

 Cela ouvrira une interface web où vous pourrez créer et exécuter des notebooks Python.

4. Vérification de l'Installation des Outils


 Lancer l'IDE : Ouvrez l'IDE que vous avez installé (PyCharm, VS Code, etc.).
 Créer un Nouveau Fichier : Créez un nouveau fichier Python (par exemple, [Link]).
 Écrire du Code : Écrivez un simple programme :
python
 print("Hello, World!")

 Exécuter le Fichier : Exécutez le programme depuis l'IDE pour vérifier que tout fonctionne
correctement.
III-Première Exécution d'un Programme Python

1. Ouvrir votre IDE


Commencez par ouvrir l'IDE que vous avez installé (par exemple, PyCharm, Visual Studio Code,
ou Jupyter Notebook).

2. Créer un Nouveau Fichier Python

Dans PyCharm :
1. Créer un Nouveau Projet :
 Cliquez sur "File" > "New Project".
 Donnez un nom à votre projet et choisissez l'interpréteur Python.
2. Créer un Nouveau Fichier :
 Cliquez avec le bouton droit sur le dossier du projet dans l'arborescence.
 Sélectionnez "New" > "Python File".
 Nommez le fichier (par exemple, [Link]).

Dans Visual Studio Code :


1. Ouvrir le Dossier :
 Cliquez sur "File" > "Open Folder" et choisissez un dossier pour votre projet.
2. Créer un Nouveau Fichier :
 Cliquez sur "File" > "New File".
 Nommez le fichier [Link].

Dans Jupyter Notebook :


1. Créer un Nouveau Notebook :
 Ouvrez Jupyter Notebook dans votre navigateur.
 Cliquez sur "New" > "Python 3" pour créer un nouveau notebook.

3. Écrire le Code
Dans le fichier ou le notebook que vous avez créé, tapez le code suivant :
python
print("Hello, World!")

4. Exécuter le Code

Dans PyCharm :
 Cliquez sur le bouton de lecture (Run) en haut à droite, ou faites un clic droit sur le fichier
dans l'arborescence et sélectionnez "Run 'hello'".

Dans Visual Studio Code :


 Vous pouvez exécuter le code en utilisant le terminal intégré. Ouvrez le terminal via "View"
> "Terminal" et tapez :
bash
 python [Link]

 Alternativement, si vous avez l'extension Python installée, vous pouvez également cliquer
sur "Run Python File" dans le coin supérieur droit.

Dans Jupyter Notebook :


 Cliquez sur la cellule contenant le code et appuyez sur Shift + Enter pour exécuter la
cellule.

5. Vérifier le Résultat
Après avoir exécuté le code, vous devriez voir le texte suivant affiché dans la console ou le terminal
:
Hello, World!

Leçon 2 : Syntaxe de Base

I-Variables et Types de Données en Python

1. Qu'est-ce qu'une Variable ?


Une variable est un espace de stockage qui possède un nom et qui peut contenir des données. En
Python, vous n'avez pas besoin de déclarer le type d'une variable avant de l'utiliser. Vous pouvez
simplement l'assigner à une valeur.

Exemples de Déclaration de Variables :


python
nom = "Alice" # Chaîne de caractères
age = 25 # Entier
taille = 1.75 # Flottant
est_etudiant = True # Booléen

2. Types de Données
Python prend en charge plusieurs types de données, dont les plus courants sont :

a. int (Entier)
 Représente des nombres entiers, positifs ou négatifs, sans décimales.
 Exemples :
python
 age = 30
annee = 2024
b. float (Flottant)
 Représente des nombres à virgule flottante, c'est-à-dire des nombres réels, y compris les
décimales.
 Exemples :
python
 temperature = 36.6
prix = 19.99

c. string (Chaîne de Caractères)


 Représente une séquence de caractères. Les chaînes de caractères peuvent être définies par
des guillemets simples (') ou doubles (").
 Exemples :
python
 nom = "Bob"
ville = 'Paris'
message = "Bonjour, comment ça va ?"

 Concaténation de chaînes :
python
 nom_complet = nom + " Dupont" # "Bob Dupont"

d. bool (Booléen)
 Représente une valeur de vérité : soit True (vrai) soit False (faux). Utilisé pour les
conditions et les comparaisons.
 Exemples :
python
 est_majeur = age >= 18 # True si age est supérieur ou égal à
18
a_des_animaux = False

3. Vérification du Type de Données


Vous pouvez utiliser la fonction type() pour vérifier le type d'une variable :

python
print(type(nom)) # <class 'str'>
print(type(age)) # <class 'int'>
print(type(temperature)) # <class 'float'>
print(type(est_etudiant)) # <class 'bool'>

4. Conversion de Types
Il est souvent nécessaire de convertir une variable d'un type à un autre. Voici quelques conversions
courantes :
 Convertir en entier :
python
 age_str = "25"
age_int = int(age_str) # Convertit une chaîne en entier

 Convertir en flottant :
python
 prix_str = "19.99"
prix_float = float(prix_str) # Convertit une chaîne en flottant

 Convertir en chaîne :
python
 nombre = 100
nombre_str = str(nombre) # Convertit un entier en chaîne

5. Opérations avec les Types de Données


 Entiers et Flottants :
Vous pouvez effectuer des opérations arithmétiques sur les entiers et les flottants.
python
 somme = age + 5 # Addition
division = 10 / 3 # Division (renvoie un float)

 Chaînes :
Vous pouvez utiliser des opérations telles que la concaténation et la multiplication.
python
 nom = "Alice"
message = nom * 3 # "AliceAliceAlice"

II-Opérateurs en Python

1. Opérateurs Arithmétiques
Les opérateurs arithmétiques sont utilisés pour effectuer des opérations mathématiques sur des
nombres. Voici les principaux opérateurs arithmétiques en Python :
Exemples :
python
a = 10
b = 3

somme = a + b # 13
difference = a - b # 7
produit = a * b # 30
division = a / b # 3.333...
division_entiere = a // b # 3
reste = a % b # 1
puissance = a ** b # 1000

2. Opérateurs Relationnels
Les opérateurs relationnels sont utilisés pour comparer deux valeurs. Ils renvoient toujours un
booléen (True ou False).

Exemples :
python
a = 10
b = 5

est_egal = a == b # False
est_different = a != b # True
est_superieur = a > b # True
est_inferieur = a < b # False
superieur_ou_egal = a >= b # True
inferieur_ou_egal = a <= b # False

3. Opérateurs Logiques
Les opérateurs logiques sont utilisés pour combiner des expressions booléennes. Ils renvoient
également un booléen.
Exemples :
python
a = True
b = False

et_logique = a and b # False


ou_logique = a or b # True
negation = not a # False

4. Priorité des Opérateurs


La priorité des opérateurs détermine l'ordre dans lequel les opérations sont effectuées dans une
expression. Voici l'ordre de priorité du plus élevé au plus bas :
1. Parenthèses ()
2. Puissance **
3. Multiplication, Division, Division entière, Modulo *, /, //, %
4. Addition, Soustraction +, -
5. Comparaisons ==, !=, <, >, <=, >=
6. Logiques not, and, or

Exemple de Priorité :
python
resultat = 5 + 3 * 2 # 11 (3*2 est calculé en premier)

III-Gestion des Commentaires et des Chaînes de Documentation en Python

1. Commentaires
Les commentaires sont des parties du code qui ne sont pas exécutées. Ils sont utilisés pour expliquer
le code, rendre celui-ci plus lisible et aider les autres (ou vous-même) à comprendre le
fonctionnement du programme. En Python, il existe deux types de commentaires :

a. Commentaires sur une seule ligne


Ces commentaires commencent par le symbole #. Tout ce qui suit ce symbole sur la même ligne est
ignoré par l'interpréteur Python.
Exemple :
python
# Ceci est un commentaire
a = 10 # Déclaration d'une variable entière

b. Commentaires sur plusieurs lignes


Pour les commentaires qui s'étendent sur plusieurs lignes, vous pouvez utiliser plusieurs # ou des
chaînes de caractères multilignes (triple guillemet). Bien que trois guillemets ne soient pas des
commentaires au sens strict, ils peuvent être utilisés comme tels.
Exemple avec plusieurs # :

python
# Ceci est un commentaire
# qui s'étend sur plusieurs lignes

Exemple avec des chaînes de caractères multilignes :


python
"""
Ceci est une chaîne de caractères
multilignes utilisée comme commentaire.
"""

2. Chaînes de Documentation (Docstrings)


Les chaînes de documentation, ou docstrings, sont des chaînes de caractères utilisées pour
documenter des modules, des classes, ou des fonctions. Elles permettent de fournir des informations
sur le comportement et l'utilisation d'un élément de code. En Python, les docstrings sont définies en
utilisant des triples guillemets (""" ou ''').

a. Syntaxe d'une Docstring


Les docstrings doivent être placées immédiatement après la définition d'une fonction, d'une classe
ou d'un module.
Exemple :
python
def somme(a, b):
"""
Calcule la somme de deux nombres.

Parameters:
a (int, float): Le premier nombre.
b (int, float): Le second nombre.

Returns:
int, float: La somme de a et b.
"""
return a + b

b. Accéder aux Docstrings


Vous pouvez accéder à la docstring d'une fonction ou d'une classe en utilisant l'attribut __doc__.

Exemple :
python
print(somme.__doc__)

3. Importance des Commentaires et des Docstrings


 Lisibilité : Les commentaires et les docstrings améliorent la lisibilité du code, ce qui est
essentiel pour le travail en équipe et la maintenance du code.
 Documentation : Les docstrings offrent une documentation intégrée qui peut être utilisée
par des outils de documentation automatique comme Sphinx.
 Clarté : Ils aident à clarifier l'intention du code, ce qui facilite la compréhension des
algorithmes et des fonctions.

4. Bonnes Pratiques
 Commenter le Pourquoi, Pas le Quoi : Évitez de commenter des choses évidentes.
Concentrez-vous sur le pourquoi du code plutôt que sur le quoi.
 Mettre à Jour : Assurez-vous que les commentaires et les docstrings sont à jour avec le
code. Des commentaires obsolètes peuvent être plus nuisibles qu'utile.
 Utiliser des Docstrings : Utilisez des docstrings pour toutes vos fonctions et classes afin de
fournir des informations utiles sur leur utilisation.
Leçon 3 : Structures de Contrôle
I-Instructions conditionnelles (if, elif, else).
Les instructions conditionnelles permettent d'exécuter différentes sections de code en fonction de
certaines conditions. Cela vous permet de contrôler le flux de votre programme en prenant des
décisions basées sur des expressions booléennes.

1. Structure de base d'une instruction if


La structure de base d'une instruction if est la suivante :

python
if condition:
# Code à exécuter si la condition est vraie

Exemple :
python
age = 18

if age >= 18:


print("Vous êtes majeur.")

2. Instructions elif
L'instruction elif (qui signifie "else if") permet de vérifier plusieurs conditions. Si la première
condition if est fausse, Python teste la condition elif. Vous pouvez avoir plusieurs instructions
elif.

Exemple :
python
age = 16

if age >= 18:


print("Vous êtes majeur.")
elif age >= 13:
print("Vous êtes un adolescent.")
else:
print("Vous êtes un enfant.")

3. Instruction else
L'instruction else est utilisée pour exécuter un bloc de code si toutes les conditions précédentes
(if et elif) sont fausses. Il n'accepte pas de condition.

Exemple :
python
age = 10

if age >= 18:


print("Vous êtes majeur.")
elif age >= 13:
print("Vous êtes un adolescent.")
else:
print("Vous êtes un enfant.")

4. Combinaison des Instructions


Vous pouvez combiner plusieurs conditions en utilisant des opérateurs logiques (and, or, not)
pour créer des conditions plus complexes.

Exemple :
python
age = 20
scolarise = True

if age >= 18 and scolarise:


print("Vous êtes un étudiant majeur.")
elif age >= 18:
print("Vous êtes un majeur.")
else:
print("Vous êtes un mineur.")

5. Indentation
L'indentation est cruciale en Python. Elle détermine le bloc de code qui appartient à chaque
instruction conditionnelle. Assurez-vous d'utiliser le même niveau d'indentation pour toutes les
lignes d'un même bloc.

Exemple :
python
if True:
print("Ceci est vrai.")
print("Ceci fait partie du même bloc.")
print("Ceci n'est pas indenté, donc hors du bloc.")

6. Exemple Complet
Voici un exemple complet d'utilisation des instructions conditionnelles :
python
note = 85

if note >= 90:


print("A")
elif note >= 80:
print("B")
elif note >= 70:
print("C")
elif note >= 60:
print("D")
else:
print("F")

II-Introduction aux boucles (for, while).


Les boucles sont des structures de contrôle qui permettent de répéter un bloc de code plusieurs fois.
Elles sont essentielles pour automatiser les tâches et gérer des collections de données.

1. Boucle for
La boucle for est utilisée pour itérer sur les éléments d'une séquence (comme une liste, un tuple,
une chaîne de caractères, ou un dictionnaire). Elle est particulièrement utile lorsque vous connaissez
le nombre d'itérations à l'avance.

Syntaxe :
python
for variable in séquence:
# Code à exécuter pour chaque élément
Exemples :
Itération sur une liste :
python
fruits = ["pomme", "banane", "cerise"]

for fruit in fruits:


print(fruit)

Itération sur une chaîne de caractères :


python
mot = "Python"

for lettre in mot:


print(lettre)

Utilisation de range() :

La fonction range() génère une séquence de nombres. Elle est souvent utilisée avec for pour
répéter un bloc de code un certain nombre de fois.
python
for i in range(5): # De 0 à 4
print(i)

2. Boucle while
La boucle while continue d'exécuter un bloc de code tant qu'une condition est vraie. Elle est utile
lorsque le nombre d'itérations n'est pas connu à l'avance.

Syntaxe :
python
while condition:
# Code à exécuter tant que la condition est vraie

Exemples :
python
compteur = 0

while compteur < 5:


print(compteur)
compteur += 1 # Incrémente le compteur

3. Instructions break et continue


 break : Utilisé pour sortir immédiatement de la boucle, quel que soit l'état de la condition.
Exemple :
python
 for i in range(10):
if i == 5:
break # Sort de la boucle lorsque i est égal à 5
print(i)

 continue : Utilisé pour sauter l'itération en cours et passer à la suivante.

Exemple :
python
 for i in range(5):
if i == 2:
continue # Sauter l'itération lorsque i est égal à 2
print(i)

4. Boucles Imbriquées
Vous pouvez avoir des boucles à l'intérieur d'autres boucles. Cela peut être utile pour traiter des
structures de données plus complexes.
Exemple :
python
for i in range(3): # Boucle externe
for j in range(2): # Boucle interne
print(f"i: {i}, j: {j}")

III-Utilisation de break et continue.

Les instructions break et continue sont des outils puissants pour contrôler le flux d'exécution
des boucles. Elles vous permettent de modifier le comportement par défaut des boucles for et
while.

1. Instruction break
L'instruction break est utilisée pour sortir immédiatement d'une boucle, quel que soit l'état de la
condition. Cela peut être utile lorsque vous souhaitez interrompre une boucle en fonction d'une
condition spécifique.

Exemple d'utilisation de break


Exemple 1 : Arrêter une boucle lorsque la condition est remplie
python
for i in range(10):
if i == 5:
break # Sortir de la boucle lorsque i est égal à 5
print(i)
Sortie :
0
1
2
3
4

Dans cet exemple, la boucle for s'arrête dès que la variable i atteint la valeur 5. Les valeurs 5, 6,
7, 8, et 9 ne seront pas imprimées.
Exemple 2 : Utiliser break dans une boucle while

python
compteur = 0

while True: # Boucle infinie


if compteur >= 3:
break # Sortir de la boucle lorsque le compteur atteint 3
print(compteur)
compteur += 1

Sortie :
0
1
2

2. Instruction continue
L'instruction continue est utilisée pour sauter l'itération en cours de la boucle et passer à
l'itération suivante. Lorsque continue est rencontré, le reste du code dans la boucle pour cette
itération n'est pas exécuté.

Exemple d'utilisation de continue


Exemple 1 : Sauter une valeur spécifique
python
for i in range(5):
if i == 2:
continue # Sauter l'itération lorsque i est égal à 2
print(i)

Sortie :
0
1
3
4

Dans cet exemple, lorsque i vaut 2, l'instruction continue est exécutée, et l'itération est sautée.
La valeur 2 n'est donc pas imprimée.
Exemple 2 : Utiliser continue dans une boucle while

python
compteur = 0

while compteur < 5:


compteur += 1
if compteur == 3:
continue # Sauter l'itération lorsque le compteur est
égal à 3
print(compteur)

Sortie :
1
2
4
5

3. Combinaison de break et continue


Il est possible d'utiliser break et continue dans la même boucle. Cela vous permet de gérer des
conditions complexes.
python
for i in range(6):
if i == 4:
break # Sortir de la boucle lorsque i est égal à 4
if i % 2 == 0:
continue # Sauter les nombres pairs
print(i)

Sortie :
1
3

Leçon 4 : Fonctions
A. Définition d'une fonction
Une fonction en Python est un bloc de code réutilisable qui effectue une tâche spécifique. Elle peut
prendre des arguments en entrée et peut renvoyer une valeur.

1. Syntaxe de définition d'une fonction


La syntaxe pour définir une fonction est la suivante :
def nom_de_fonction(paramètres):
# Corps de la fonction
instructions
return valeur # Optionnel
2. Exemples de définition
 Fonction sans paramètres :
 def saluer():
print("Bonjour !")

 Fonction avec paramètres :


 def addition(a, b):
return a + b

 Fonction avec paramètres par défaut :


 def saluer(nom="Invité"):
print(f"Bonjour, {nom} !")

B. Appel de fonctions
Pour exécuter une fonction, vous devez l'appeler en utilisant son nom et en fournissant les
arguments nécessaires.

1. Syntaxe d'appel
nom_de_fonction(argument1, argument2)

2. Exemples d'appel
 Appel d'une fonction sans paramètres :
 saluer() # Affiche "Bonjour !"

 Appel d'une fonction avec paramètres :


 resultat = addition(5, 3)
print(resultat) # Affiche 8

 Appel d'une fonction avec paramètres par défaut :


 saluer("Alice") # Affiche "Bonjour, Alice !"
saluer() # Affiche "Bonjour, Invité !"

C. Valeurs de retour
Les fonctions peuvent renvoyer des valeurs à l'aide de l'instruction return. Si aucune valeur n'est
renvoyée, la fonction renvoie None.

Exemple :
python
def carre(x):
return x * x

resultat = carre(4)
print(resultat) # Affiche 16
D. Importance des fonctions
 Réutilisabilité : Les fonctions permettent de réutiliser le code sans duplication.
 Lisibilité : Elles aident à organiser le code et à le rendre plus lisible.
 Modularité : Les fonctions favorisent une approche modulaire dans le développement de
logiciels.
II-Paramètres et valeurs de retour.
A. Paramètres de fonction
Les paramètres permettent de passer des valeurs à une fonction lors de son appel. Ils agissent
comme des variables locales à l'intérieur de la fonction.

1. Types de paramètres
 Paramètres positionnels : Les valeurs doivent être fournies dans le même ordre que les
paramètres définis.
 def multiplier(a, b):
return a * b

resultat = multiplier(3, 4) # a=3, b=4

 Paramètres par défaut : Vous pouvez définir des valeurs par défaut pour les paramètres. Si
l'argument n'est pas fourni, la valeur par défaut sera utilisée.
 def saluer(nom="Invité"):
print(f"Bonjour, {nom} !")

saluer() # Affiche "Bonjour, Invité !"


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

 Paramètres nommés : Lors de l'appel d'une fonction, vous pouvez spécifier les noms des
paramètres pour plus de clarté.
 def afficher_info(nom, age):
print(f"{nom} a {age} ans.")

afficher_info(age=25, nom="Bob") # Les arguments sont fournis par nom

 Paramètres variables : Utilisez *args pour passer un nombre variable d'arguments


positionnels et **kwargs pour un nombre variable d'arguments nommés.
 def somme(*args):
return sum(args)

print(somme(1, 2, 3, 4)) # Affiche 10

def afficher_kwargs(**kwargs):
for clé, valeur in [Link]():
print(f"{clé}: {valeur}")

afficher_kwargs(nom="Alice", age=30) # Affiche les paires clé-valeur

B. Valeurs de retour
Les valeurs de retour permettent à une fonction de renvoyer des résultats à l'endroit où elle a été
appelée.
1. Utilisation de return
L'instruction return termine l'exécution de la fonction et renvoie une valeur.
def carre(x):
return x * x

resultat = carre(5)
print(resultat) # Affiche 25

2. Retourner plusieurs valeurs


Une fonction peut renvoyer plusieurs valeurs sous forme de tuple.
def calculs(x, y):
somme = x + y
difference = x - y
return somme, difference

s, d = calculs(10, 5)
print(s) # Affiche 15
print(d) # Affiche 5

3. Valeur de retour implicite


Si aucune instruction return n'est fournie, la fonction renvoie None par défaut.
def fonction_sans_retour():
print("Ceci est une fonction sans valeur de retour.")

resultat = fonction_sans_retour()
print(resultat) # Affiche None

C. Importance des paramètres et des valeurs de retour


 Flexibilité : Les paramètres permettent de rendre les fonctions dynamiques et adaptables.
 Clarté : Les valeurs de retour clarifient le résultat d'une opération, rendant le code plus
compréhensible.
 Modularité : La séparation des calculs dans des fonctions distinctes facilite la maintenance
et les tests.
III-Portée des variables (locale vs globale).
A. Définition de la portée des variables
La portée d'une variable fait référence à la région du programme où la variable est accessible. En
Python, les variables peuvent être classées en deux catégories principales : locales et globales.

B. 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. Elles sont créées lorsqu'une fonction est appelée et détruites lorsque la fonction se
termine.

1. Exemple de variable locale


def ma_fonction():
x = 10 # Variable locale
print(f"À l'intérieur de la fonction : x = {x}")
ma_fonction() # Affiche : À l'intérieur de la fonction : x = 10
# print(x) # Cela provoquerait une erreur, car x n'est pas accessible ici

C. Variables globales
Les variables globales sont définies en dehors de toutes les fonctions et peuvent être accessibles
depuis n'importe quelle fonction du même module. Elles conservent leur valeur tant que le
programme est en cours d'exécution.

1. Exemple de variable globale


y = 20 # Variable globale

def autre_fonction():
print(f"À l'intérieur de la fonction : y = {y}")

autre_fonction() # Affiche : À l'intérieur de la fonction : y = 20

D. Modifications des variables globales


Pour modifier une variable globale à l'intérieur d'une fonction, vous devez utiliser le mot-clé
global. Cela indique à Python que vous souhaitez utiliser la variable globale, et non créer une
nouvelle variable locale.

1. Exemple de modification d'une variable globale


z = 30 # Variable globale

def modifier_z():
global z # Indique que nous voulons utiliser la variable globale z
z += 10 # Modifie la variable globale
print(f"À l'intérieur de la fonction : z = {z}")

modifier_z() # Affiche : À l'intérieur de la fonction : z = 40


print(z) # Affiche : 40

E. Portée et bonnes pratiques


 Utiliser des variables locales : Il est recommandé d'utiliser des variables locales chaque fois
que cela est possible pour éviter des effets secondaires non souhaités.
 Éviter les variables globales : L'utilisation excessive de variables globales peut rendre le
code difficile à comprendre et à maintenir. Il est préférable de passer des arguments aux
fonctions et de renvoyer des valeurs.
 Clarté du code : Maintenir une portée claire aide à rendre le code plus lisible et facilite le
débogage.
IV-Documentation des fonctions.
A. Importance de la documentation
La documentation des fonctions est essentielle pour :
 Clarté : Expliquer le fonctionnement d'une fonction.
 Utilisabilité : Aider les autres développeurs (ou vous-même) à comprendre comment utiliser
une fonction.
 Maintenance : Faciliter la mise à jour et la modification du code.

B. Comment documenter une fonction


En Python, la documentation d'une fonction se fait principalement à l'aide de docstrings (chaînes de
documentation). Une docstring est une chaîne de caractères qui décrit la fonction et est placée
immédiatement après la déclaration de la fonction.

1. Syntaxe d'une docstring


La docstring est entourée de triples guillemets (''' ou """) et peut s'étendre sur plusieurs lignes.
def nom_de_fonction(paramètres):
"""
Description de la fonction.

Args:
paramètre1 (type): Description du paramètre1.
paramètre2 (type): Description du paramètre2.

Returns:
type: Description de la valeur de retour.
"""
# Corps de la fonction
pass

C. Exemples de documentation de fonction


1. Exemple simple
def addition(a, b):
"""
Calcule la somme de deux nombres.

Args:
a (int ou float): Le premier nombre.
b (int ou float): Le deuxième nombre.

Returns:
int ou float: La somme de a et b.
"""
return a + b

2. Exemple avec des exceptions


def division(numerateur, denominateur):
"""
Effectue la division de deux nombres.

Args:
numerateur (float): Le numérateur.
denominateur (float): Le dénominateur.

Returns:
float: Le résultat de la division.

Raises:
ValueError: Si le dénominateur est zéro.
"""
if denominateur == 0:
raise ValueError("Le dénominateur ne peut pas être zéro.")
return numerateur / denominateur

D. Accéder à la documentation d'une fonction


En Python, vous pouvez accéder à la docstring d'une fonction en utilisant la fonction help() ou en
accédant à l'attribut __doc__.

1. Utilisation de help()
help(addition)

2. Accès à __doc__
python
print(addition.__doc__)

E. Bonnes pratiques de documentation


 Soyez concis : La description doit être claire et aller droit au but.
 Utilisez un format cohérent : Suivez un format similaire pour toutes vos docstrings.
 Mettez à jour la documentation : Assurez-vous que la documentation est à jour avec le
code.
Leçon 5 : Structures de Données de Base
I-Listes et opérations sur les listes.

A. Définition des listes


Une liste en Python est une collection ordonnée, mutable (modifiable) et pouvant contenir des
éléments de différents types. Les listes sont définies en utilisant des crochets [].

1. Création d'une liste


# Liste vide
ma_liste = []

# Liste avec des éléments


nombres = [1, 2, 3, 4, 5]
fruits = ["pomme", "banane", "cerise"]
melange = [1, "deux", 3.0, True]

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


Les éléments d'une liste peuvent être accédés par leur index, qui commence à 0.
# Accéder au premier élément
premier_fruit = fruits[0] # "pomme"

# Accéder au dernier élément


dernier_fruit = fruits[-1] # "cerise"
C. Opérations sur les listes
1. Ajouter des éléments
 append() : Ajoute un élément à la fin de la liste.
 [Link]("orange") # fruits devient ["pomme", "banane", "cerise",
"orange"]

 insert() : Insère un élément à un index spécifique.


 [Link](1, "kiwi") # fruits devient ["pomme", "kiwi", "banane",
"cerise", "orange"]

2. Supprimer des éléments


 remove() : Supprime la première occurrence d'un élément.
 [Link]("banane") # fruits devient ["pomme", "kiwi", "cerise",
"orange"]

 pop() : Supprime et renvoie un élément à un index spécifique (par défaut, le dernier


élément).
 dernier_fruit = [Link]() # "orange", fruits devient ["pomme", "kiwi",
"cerise"]

 clear() : Supprime tous les éléments de la liste.


 [Link]() # fruits devient []

3. Modifier des éléments


Les éléments d'une liste peuvent être modifiés en utilisant leur index.
fruits[0] = "fraise" # fruits devient ["fraise", "kiwi", "cerise"]

4. Trier des listes


 sort() : Trie la liste en place.
 nombres = [5, 2, 9, 1]
[Link]() # nombres devient [1, 2, 5, 9]

 sorted() : Renvoie une nouvelle liste triée sans modifier l'originale.


 nouveaux_nombres = sorted(nombres) # [1, 2, 5, 9]

5. Longueur d'une liste


Pour obtenir le nombre d'éléments dans une liste, utilisez len().
taille = len(fruits) # Nombre d'éléments dans fruits

D. Itérer sur une liste


Vous pouvez parcourir une liste à l'aide d'une boucle for.
for fruit in fruits:
print(fruit)

E. Listes imbriquées
Les listes peuvent contenir d'autres listes, ce qui permet de créer des listes imbriquées.
matrice = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(matrice[1][2]) # Affiche 6

II-Tuples et ensembles.
A. Tuples
1. Définition
Un tuple est une collection ordonnée d'éléments qui est immuable (non modifiable). Les tuples sont
définis en utilisant des parenthèses ().

2. Création d'un tuple


# Tuple vide
mon_tuple_vide = ()

# Tuple avec des éléments


mon_tuple = (1, 2, 3)
fruits = ("pomme", "banane", "cerise")
melange = (1, "deux", 3.0, True)

3. Accès aux éléments


Les éléments d'un tuple peuvent être accédés par leur index, tout comme les listes.
premier_fruit = fruits[0] # "pomme"
dernier_fruit = fruits[-1] # "cerise"

4. Caractéristiques des tuples


 Immutabilité : Une fois créés, les éléments d'un tuple ne peuvent pas être modifiés ou
supprimés.
 # fruits[0] = "kiwi" # Provoquerait une erreur

 Utilisation : Les tuples sont souvent utilisés pour des données qui ne doivent pas changer,
comme les coordonnées, les dates, etc.

5. Opérations sur les tuples


 Concaténation : Vous pouvez combiner des tuples à l'aide de l'opérateur +.
 tuple1 = (1, 2)
tuple2 = (3, 4)
tuple_combined = tuple1 + tuple2 # (1, 2, 3, 4)

 Répétition : Vous pouvez répéter un tuple avec l'opérateur *.


 tuple_repe = (1, 2) * 3 # (1, 2, 1, 2, 1, 2)

 Longueur : Utilisez len() pour obtenir le nombre d'éléments dans un tuple.


 longueur = len(fruits) # 3

B. Ensembles
1. Définition
Un ensemble est une collection non ordonnée d'éléments uniques. Les ensembles sont définis en
utilisant des accolades {} ou la fonction set().

2. Création d'un ensemble


# Ensemble vide
mon_ensemble_vide = set()

# Ensemble avec des éléments


mon_ensemble = {1, 2, 3, 4, 5}
fruits = {"pomme", "banane", "cerise"}

3. Caractéristiques des ensembles


 Unicité : Les ensembles ne contiennent pas de doublons. Si vous ajoutez un élément déjà
présent, il ne sera pas ajouté.
 mon_ensemble = {1, 2, 2, 3} # mon_ensemble devient {1, 2, 3}

 Non ordonné : Les éléments d'un ensemble n'ont pas d'ordre défini, ce qui signifie que vous
ne pouvez pas accéder à un élément par son index.

4. Opérations sur les ensembles


 Ajouter un élément : Utilisez add() pour ajouter un élément à l'ensemble.
 [Link]("orange") # fruits devient {"pomme", "banane", "cerise",
"orange"}

 Supprimer un élément : Utilisez remove() pour supprimer un élément. Si l'élément


n'existe pas, cela provoquera une erreur. Vous pouvez utiliser discard() qui ne provoque
pas d'erreur si l'élément n’existe pas.
 [Link]("banane") # fruits devient {"pomme", "cerise", "orange"}

 Opérations d'ensemble : Vous pouvez effectuer des opérations comme l'union,


l'intersection et la différence.
 ensemble1 = {1, 2, 3}
ensemble2 = {3, 4, 5}

union = ensemble1 | ensemble2 # {1, 2, 3, 4, 5}


intersection = ensemble1 & ensemble2 # {3}
difference = ensemble1 - ensemble2 # {1, 2}

5. Longueur
Pour obtenir le nombre d'éléments dans un ensemble, utilisez len().
taille = len(fruits) # Nombre d'éléments dans fruits
III-Dictionnaires et leurs méthodes.

A. Définition des dictionnaires


Un dictionnaire en Python est une collection non ordonnée de paires clé-valeur. Chaque clé dans un
dictionnaire est unique, et elle est utilisée pour accéder à la valeur correspondante. Les dictionnaires
sont définis en utilisant des accolades {}.

1. Création d'un dictionnaire


# Dictionnaire vide
mon_dictionnaire = {}

# Dictionnaire avec des éléments


etudiant = {
"nom": "Alice",
"age": 21,
"ville": "Paris"
}

B. Accès aux valeurs


Pour accéder à une valeur dans un dictionnaire, utilisez la clé correspondante.
nom_etudiant = etudiant["nom"] # "Alice"
age_etudiant = etudiant["age"] # 21

C. Méthodes des dictionnaires


Les dictionnaires en Python possèdent plusieurs méthodes utiles pour la manipulation de données.
Voici quelques-unes des méthodes les plus courantes :

1. get()
Permet d'accéder à la valeur associée à une clé. Si la clé n'existe pas, vous pouvez spécifier une
valeur par défaut.
ville_etudiant = [Link]("ville") # "Paris"
pays_etudiant = [Link]("pays", "Inconnu") # "Inconnu" (car "pays"
n'existe pas)

2. keys()
Renvoie une vue des clés du dictionnaire.
cles = [Link]() # dict_keys(['nom', 'age', 'ville'])

3. values()
Renvoie une vue des valeurs du dictionnaire.
valeurs = [Link]() # dict_values(['Alice', 21, 'Paris'])

4. items()
Renvoie une vue des paires clé-valeur sous forme de tuples.
paires = [Link]() # dict_items([('nom', 'Alice'), ('age', 21),
('ville', 'Paris')])

5. update()
Met à jour le dictionnaire avec des paires clé-valeur à partir d'un autre dictionnaire ou d'un itérable.
[Link]({"age": 22, "pays": "France"})
# etudiant devient {'nom': 'Alice', 'age': 22, 'ville': 'Paris', 'pays':
'France'}

6. pop()
Supprime une clé et renvoie sa valeur. Si la clé n'existe pas, cela provoque une erreur.
age = [Link]("age") # 22, etudiant devient {'nom': 'Alice', 'ville':
'Paris', 'pays': 'France'}

7. popitem()
Supprime et renvoie la dernière paire clé-valeur ajoutée au dictionnaire.
dernier_element = [Link]() # Exemple de sortie : ('pays', 'France')

8. clear()
Supprime tous les éléments du dictionnaire.
[Link]() # etudiant devient {}

D. Ajout et modification d'éléments


Pour ajouter ou modifier des éléments dans un dictionnaire, il suffit d'assigner une valeur à une clé.
etudiant["nom"] = "Bob" # Modifie le nom
etudiant["email"] = "bob@[Link]" # Ajoute un nouvel élément

E. Vérification de l'existence d'une clé


Vous pouvez vérifier si une clé existe dans un dictionnaire en utilisant l'opérateur in.
if "nom" in etudiant:
print("La clé 'nom' existe.")

Leçon 6 : Gestion des Erreurs


I-Introduction à la gestion des exceptions.
A. Qu'est-ce qu'une exception ?
Une exception est un événement qui se produit pendant l'exécution d'un programme, perturbant le
flux normal des instructions. Les exceptions peuvent être causées par des erreurs dans le code, des
entrées invalides ou des conditions inattendues.

B. Importance de la gestion des exceptions


La gestion des exceptions est essentielle pour :
 Améliorer la robustesse : Éviter que le programme ne plante en gérant les erreurs de
manière contrôlée.
 Fournir des messages d'erreur clairs : Aider les utilisateurs et les développeurs à
comprendre ce qui s'est mal passé.
 Contrôler le flux du programme : Permettre au programme de continuer à fonctionner ou
de se terminer proprement en cas d'erreur.

C. Lever une exception


En Python, vous pouvez lever une exception à l'aide de l'instruction raise.
def diviser(a, b):
if b == 0:
raise ValueError("Le dénominateur ne peut pas être zéro.")
return a / b

D. Gestion des exceptions avec try et except


La gestion des exceptions en Python se fait principalement à l'aide des blocs try et except.

1. Syntaxe de base
try:
# Code qui peut provoquer une exception
resultat = diviser(10, 0)
except ValueError as e:
# Code exécuté en cas d'exception
print(f"Une erreur s'est produite : {e}")

2. Plusieurs exceptions
Vous pouvez gérer plusieurs types d'exceptions en utilisant plusieurs blocs except.
try:
# Code qui peut provoquer plusieurs exceptions
resultat = diviser(10, "a")
except ValueError:
print("Erreur de valeur.")
except TypeError:
print("Erreur de type.")

3. Bloc else
Un bloc else peut être ajouté après tous les blocs except. Ce bloc s'exécute si aucune exception
n'est levée dans le bloc try.
try:
resultat = diviser(10, 2)
except ValueError as e:
print(f"Erreur : {e}")
else:
print(f"Le résultat est : {resultat}")

4. Bloc finally
Le bloc finally s'exécute toujours, que des exceptions soient levées ou non. Il est souvent utilisé
pour libérer des ressources.
try:
fichier = open("mon_fichier.txt", "r")
contenu = [Link]()
except FileNotFoundError:
print("Le fichier n'existe pas.")
finally:
[Link]() # S'assure que le fichier est toujours fermé

E. Exceptions personnalisées
Vous pouvez créer vos propres exceptions en définissant une classe qui hérite de la classe
Exception.
class MonErreur(Exception):
pass

def verifier_condition(condition):
if not condition:
raise MonErreur("La condition n'est pas remplie.")

try:
verifier_condition(False)
except MonErreur as e:
print(e)

Leçon 7 : Fichiers et Entrée/Sortie


I-Lecture et écriture de fichiers texte.
A. Introduction
La gestion des fichiers est une compétence essentielle en programmation. En Python, vous pouvez
facilement lire et écrire des fichiers texte à l'aide des fonctions intégrées.

B. Ouverture d'un fichier


Pour manipuler un fichier, vous devez d'abord l'ouvrir à l'aide de la fonction open(). Cette
fonction prend deux arguments principaux :
1. Nom du fichier : Le chemin du fichier à ouvrir.
2. Mode : Le mode d'ouverture du fichier, qui peut être :
 'r' : Lecture (par défaut).
 'w' : Écriture (créée un nouveau fichier ou écrase un fichier existant).
 'a' : Ajout (ajoute du contenu à la fin du fichier).
 'b' : Mode binaire (pour les fichiers binaires).
 'x' : Création (lève une erreur si le fichier existe déjà).

Exemple d'ouverture d'un fichier :


# Ouvrir un fichier en mode lecture
fichier = open("mon_fichier.txt", "r")

C. Lecture de fichiers
1. Lire tout le contenu
Pour lire l'intégralité du contenu d'un fichier, utilisez la méthode read().
contenu = [Link]()
print(contenu)

2. Lire ligne par ligne


Pour lire un fichier ligne par ligne, utilisez la méthode readline() ou une boucle for.
# Lire une seule ligne
ligne = [Link]()
print(ligne)

# Lire toutes les lignes avec une boucle


for ligne in fichier:
print(ligne)

3. Lire toutes les lignes dans une liste


La méthode readlines() renvoie une liste contenant toutes les lignes du fichier.
lignes = [Link]()
print(lignes)

D. Écriture dans des fichiers


1. Écrire du texte
Pour écrire dans un fichier, ouvrez-le en mode 'w' ou 'a' et utilisez la méthode write().
# Ouvrir un fichier en mode écriture
fichier = open("mon_fichier.txt", "w")

# Écrire du texte dans le fichier


[Link]("Bonjour, monde !\n")
[Link]("Ceci est une nouvelle ligne.\n")

2. Écrire plusieurs lignes


Pour écrire plusieurs lignes à la fois, vous pouvez utiliser writelines().
lignes = ["Ligne 1\n", "Ligne 2\n", "Ligne 3\n"]
[Link](lignes)

E. Fermeture d'un fichier


Après avoir terminé de lire ou d'écrire, fermez le fichier en utilisant la méthode close().
[Link]()

II-Gestion des fichiers avec le contexte (with).


A. Introduction à l'instruction with
L'instruction with en Python est utilisée pour simplifier la gestion des ressources, comme les
fichiers. Elle garantit que les ressources sont correctement acquises et libérées, même en cas
d'erreur. Cela évite les fuites de ressources, comme des fichiers non fermés.
B. Avantages de l'utilisation de with
1. Fermeture automatique : Le fichier est automatiquement fermé à la fin du bloc with,
même si une exception est levée.
2. Code plus propre : Réduit le besoin d'appeler close() explicitement.
3. Gestion des erreurs : Simplifie le traitement des erreurs en encapsulant le code qui
manipule les fichiers.

C. Syntaxe de base
La syntaxe de l'instruction with pour ouvrir un fichier est la suivante :

python
with open("nom_du_fichier.txt", "mode") as variable:
# Opérations sur le fichier

D. Exemples d'utilisation
1. Lecture d'un fichier
Voici comment lire le contenu d'un fichier à l'aide de with :

python
with open("mon_fichier.txt", "r") as fichier:
contenu = [Link]()
print(contenu)

Dans cet exemple, le fichier est ouvert en mode lecture ("r"), et son contenu est lu et affiché. Le
fichier est automatiquement fermé à la fin du bloc with.

2. Écriture dans un fichier


Pour écrire dans un fichier, utilisez également with :
python
with open("mon_fichier.txt", "w") as fichier:
[Link]("Ceci est une nouvelle ligne.\n")
[Link]("Et une autre ligne.\n")

Ici, le fichier est ouvert en mode écriture ("w"), et deux lignes sont écrites. Le fichier est fermé
automatiquement après l'écriture.

3. Ajout à un fichier
Pour ajouter du contenu à un fichier existant, utilisez le mode 'a' (ajout) :

python
with open("mon_fichier.txt", "a") as fichier:
[Link]("Ajout d'une ligne à la fin.\n")
E. Lecture ligne par ligne
Vous pouvez également lire un fichier ligne par ligne en utilisant with :

python
with open("mon_fichier.txt", "r") as fichier:
for ligne in fichier:
print([Link]()) # `strip()` pour enlever les espaces et les sauts
de ligne

F. Gestion des exceptions avec with


Bien que with gère la fermeture des fichiers, vous pouvez également ajouter des blocs try-
except à l'intérieur pour gérer les exceptions :

python
try:
with open("mon_fichier.txt", "r") as fichier:
contenu = [Link]()
print(contenu)
except FileNotFoundError:
print("Le fichier n'existe pas.")
except IOError:
print("Une erreur est survenue lors de la lecture du fichier.")

III-Introduction à la manipulation de fichiers CSV.


A. Qu'est-ce qu'un fichier CSV ?
Un fichier CSV (Comma-Separated Values) est un format de fichier texte utilisé pour stocker des
données tabulaires. Chaque ligne du fichier représente une ligne de données, et les valeurs de
chaque colonne sont séparées par des virgules (ou d'autres délimiteurs comme des points-virgules).

B. Pourquoi utiliser des fichiers CSV ?


 Simplicité : Les fichiers CSV sont faciles à lire et à écrire, tant pour les humains que pour
les machines.
 Interopérabilité : De nombreux logiciels, y compris les tableurs comme Microsoft Excel et
Google Sheets, supportent le format CSV.
 Légèreté : Les fichiers CSV ont une taille de fichier faible par rapport à d'autres formats
comme Excel.

C. Bibliothèque csv de Python


Python fournit une bibliothèque intégrée appelée csv pour lire et écrire des fichiers CSV
facilement.

D. Lecture de fichiers CSV


Pour lire un fichier CSV, vous pouvez utiliser la fonction [Link]().

1. Exemple de lecture d'un fichier CSV


Supposons que vous ayez un fichier [Link] avec le contenu suivant :
nom,age,ville
Alice,30,Paris
Bob,25,Lyon
Charlie,35,Marseille

Vous pouvez lire ce fichier comme suit :


import csv

with open("[Link]", "r") as fichier:


lecteur = [Link](fichier)
# Ignorer l'en-tête
next(lecteur)

for ligne in lecteur:


nom, age, ville = ligne
print(f"Nom: {nom}, Âge: {age}, Ville: {ville}")

E. Écriture dans des fichiers CSV


Pour écrire dans un fichier CSV, utilisez [Link]().

1. Exemple d'écriture dans un fichier CSV


Voici comment écrire des données dans un fichier CSV :
import csv

donnees = [
["nom", "age", "ville"],
["Alice", 30, "Paris"],
["Bob", 25, "Lyon"],
["Charlie", 35, "Marseille"]
]

with open("[Link]", "w", newline='') as fichier:


ecrivain = [Link](fichier)
[Link](donnees)

F. Gestion des délimiteurs


Vous pouvez personnaliser le délimiteur utilisé dans le fichier CSV en spécifiant l'argument
delimiter.
with open("[Link]", "r") as fichier:
lecteur = [Link](fichier, delimiter=';') # Utiliser un point-virgule
comme délimiteur
for ligne in lecteur:
print(ligne)

G. Utilisation de DictReader et DictWriter


Les classes [Link] et [Link] permettent de lire et d'écrire des fichiers
CSV sous forme de dictionnaires, ce qui facilite l'accès par nom de colonne.

1. Exemple avec DictReader


import csv
with open("[Link]", "r") as fichier:
lecteur = [Link](fichier)

for ligne in lecteur:


print(f"Nom: {ligne['nom']}, Âge: {ligne['age']}, Ville:
{ligne['ville']}")

2. Exemple avec DictWriter


import csv

donnees = [
{"nom": "Alice", "age": 30, "ville": "Paris"},
{"nom": "Bob", "age": 25, "ville": "Lyon"},
{"nom": "Charlie", "age": 35, "ville": "Marseille"}
]

with open("[Link]", "w", newline='') as fichier:


champs = ["nom", "age", "ville"]
ecrivain = [Link](fichier, fieldnames=champs)
[Link]() # Écrire l'en-tête
[Link](donnees)

Leçon 8 : Modules et Packages


I-Importation de modules standard.
A. Qu'est-ce qu'un module ?
Un module en Python est un fichier contenant du code Python, qui peut inclure des définitions de
fonctions, des classes et des variables. Les modules permettent d'organiser le code en le répartissant
dans des fichiers distincts, facilitant ainsi la réutilisation et la maintenance.

B. Modules standard de Python


Python est livré avec une bibliothèque standard riche qui contient de nombreux modules utiles pour
diverses tâches, comme la manipulation de fichiers, les calculs mathématiques, la gestion des dates
et heures, et bien d'autres. Quelques exemples de modules standard incluent :
 math : Fonctions mathématiques.
 datetime : Manipulation des dates et heures.
 os : Interaction avec le système d'exploitation.
 sys : Accès aux paramètres et fonctions du système Python.
 random : Génération de nombres aléatoires.

C. Importation de modules
Pour utiliser un module, vous devez l'importer dans votre script Python. Voici quelques façons
d'importer des modules :

1. Importation simple
Pour importer un module entier, utilisez la syntaxe suivante :
import nom_du_module

Exemple :
import math

resultat = [Link](16) # Utiliser la fonction sqrt du module math


print(resultat) # Affiche 4.0

2. Importation de fonctions spécifiques


Vous pouvez importer des fonctions spécifiques d'un module pour éviter de préfixer le nom du
module à chaque utilisation :
from nom_du_module import fonction

Exemple :
from math import sqrt

resultat = sqrt(25) # Pas besoin de préfixe, directement accessible


print(resultat) # Affiche 5.0

3. Importation avec alias


Vous pouvez donner un alias à un module ou à une fonction importée pour simplifier son
utilisation :
import nom_du_module as alias

Exemple :
import numpy as np # numpy est un module populaire pour les calculs numériques

# Utiliser l'alias pour créer un tableau


tableau = [Link]([1, 2, 3])
print(tableau)

D. Vérification de la documentation des modules


Pour explorer les fonctions et classes disponibles dans un module, vous pouvez utiliser la fonction
help() ou consulter la documentation officielle de Python.
import math
help(math) # Affiche la documentation du module math

II-Création de modules personnalisés.


A. Qu'est-ce qu'un module personnalisé ?
Un module personnalisé est un fichier Python contenant du code que vous créez pour organiser et
réutiliser vos fonctions, classes et variables. Les modules permettent de structurer votre code, de le
rendre plus lisible et de faciliter son partage entre différents projets.

B. Création d'un module


1. Créer un fichier Python : Un module est simplement un fichier avec l'extension .py. Par
exemple, vous pourriez créer un fichier nommé mon_module.py.

2. Ajouter du code dans le module : Écrivez les fonctions, classes et variables que vous
souhaitez inclure dans votre module. Par exemple :
# mon_module.py
def saluer(nom):
"""Fonction qui retourne un message de salutation."""
return f"Bonjour, {nom}!"

def additionner(a, b):


"""Fonction qui retourne la somme de deux nombres."""
return a + b

PI = 3.14159

C. Utilisation d'un module personnalisé


Pour utiliser un module personnalisé dans un autre fichier Python, vous devez l'importer de la
même manière que vous importeriez un module standard.
1. Importation du module : Utilisez import suivi du nom du module (sans l'extension .py).
# [Link]

import mon_module

# Utiliser les fonctions du module


message = mon_module.saluer("Alice")
print(message) # Affiche "Bonjour, Alice!"

resultat = mon_module.additionner(5, 7)
print(resultat) # Affiche 12

print(mon_module.PI) # Affiche 3.14159

D. Importation de fonctions spécifiques


Vous pouvez également importer des fonctions spécifiques de votre module pour éviter de préfixer
le nom du module :
# [Link]

from mon_module import saluer, additionner

print(saluer("Bob")) # Affiche "Bonjour, Bob!"


print(additionner(3, 4)) # Affiche 7

E. Organisation des modules


Pour organiser vos modules, vous pouvez les placer dans des sous-dossiers appelés packages. Un
package est un dossier contenant un fichier spécial nommé __init__.py, qui peut être vide ou
contenir du code d'initialisation du package. Voici comment créer un package :
1. Créer une structure de dossiers :
mon_projet/
├── mon_package/
│ ├── __init__.py
│ ├── module_a.py
│ └── module_b.py
└── [Link]

2. Utiliser des modules dans un package :


Vous pouvez importer des modules d'un package dans votre script principal :
# module_a.py
def fonction_a():
return "Ceci est la fonction A."

# module_b.py
def fonction_b():
return "Ceci est la fonction B."

# __init__.py
from .module_a import fonction_a
from .module_b import fonction_b

# [Link]
from mon_package import fonction_a, fonction_b

print(fonction_a()) # Affiche "Ceci est la fonction A."


print(fonction_b()) # Affiche "Ceci est la fonction B."

III-Introduction aux packages et gestion des dépendances.


A. Qu'est-ce qu'un package ?
Un package en Python est une façon d'organiser des modules en un ensemble hiérarchique. Un
package est essentiellement un répertoire contenant un fichier spécial nommé __init__.py, qui
peut être vide ou contenir du code d'initialisation. Les packages permettent de structurer les
modules de manière à éviter les conflits de noms et à faciliter l'organisation du code.

1. Structure d'un package


Voici un exemple de structure de package :
mon_projet/
├── mon_package/
│ ├── __init__.py
│ ├── module_a.py
│ └── module_b.py
└── [Link]

B. Création d'un package


1. Créer le répertoire du package : Créez un dossier pour votre package et ajoutez-y un
fichier __init__.py.

2. Ajouter des modules : Placez vos modules dans ce dossier. Par exemple, module_a.py
et module_b.py.

3. Utiliser le package : Importez les modules à partir de votre package dans d'autres scripts
Python.
# module_a.py
def fonction_a():
return "Fonction A"

# module_b.py
def fonction_b():
return "Fonction B"

# __init__.py
from .module_a import fonction_a
from .module_b import fonction_b

# [Link]
from mon_package import fonction_a, fonction_b

print(fonction_a()) # Affiche "Fonction A"


print(fonction_b()) # Affiche "Fonction B"

C. Gestion des dépendances


La gestion des dépendances est cruciale dans le développement de logiciels, car elle permet de
s'assurer que toutes les bibliothèques nécessaires sont installées et à jour. Les dépendances sont des
packages externes dont votre projet a besoin pour fonctionner correctement.

1. Outils de gestion des dépendances


 pip : L'outil de gestion de packages standard pour Python. Il permet d'installer et de gérer
les packages Python à partir du Python Package Index (PyPI).
 [Link] : Un fichier texte qui liste toutes les dépendances de votre projet.
Chaque ligne contient le nom d'un package et éventuellement sa version.

Exemple de [Link] :
numpy==1.21.0
pandas>=1.3.0
requests

2. Installation des dépendances


Pour installer les dépendances listées dans un fichier [Link], utilisez la commande
suivante :
bash
pip install -r [Link]

3. Vérification des dépendances


Pour vérifier les packages installés et leurs versions, vous pouvez utiliser la commande :
bash
pip freeze

Cette commande affiche une liste de tous les packages installés dans l'environnement Python, avec
leurs versions.

D. Environnements virtuels
Il est recommandé d'utiliser des environnements virtuels pour gérer les dépendances de vos projets.
Un environnement virtuel est une installation isolée de Python qui permet d'installer des packages
sans interférer avec les autres projets.

1. Création d'un environnement virtuel


Pour créer un environnement virtuel, utilisez venv :
bash
python -m venv mon_env

2. Activation de l'environnement virtuel


 Sur Windows :
bash
mon_env\Scripts\activate

 Sur macOS et Linux :


bash
source mon_env/bin/activate

3. Installation de packages dans l'environnement virtuel


Une fois l'environnement virtuel activé, vous pouvez installer des packages avec pip, et ils seront
installés uniquement dans cet environnement.

Leçon 9 : Programmation Orientée Objet (Introduction)


I-Concepts de base de la POO (classes, objets, héritage).
A. Qu'est-ce que la programmation orientée objet (POO) ?
La programmation orientée objet est un paradigme de programmation qui utilise des "objets" pour
représenter des données et des comportements. La POO facilite la modélisation du monde réel en
regroupant des données et des fonctions qui opèrent sur ces données. Les concepts fondamentaux de
la POO incluent les classes, les objets, l'héritage et le polymorphisme.

B. Classes et objets
1. Classes
Une classe est une définition d'un type d'objet. Elle sert de modèle (ou plan) pour créer des objets,
encapsulant des données et des comportements. Une classe peut contenir des attributs (variables) et
des méthodes (fonctions).
Exemple de classe :
class Voiture:
def __init__(self, marque, modele, annee):
[Link] = marque
[Link] = modele
[Link] = annee

def demarrer(self):
print(f"La {[Link]} {[Link]} démarre.")

2. Objets
Un objet est une instance d'une classe. Lorsque vous créez un objet, vous utilisez le modèle défini
par la classe pour créer une entité spécifique.
Création d'objets :
ma_voiture = Voiture("Toyota", "Corolla", 2020)
ma_voiture.demarrer() # Affiche "La Toyota Corolla démarre."

C. Héritage
L'héritage est un mécanisme qui permet de créer une nouvelle classe à partir d'une classe existante.
La nouvelle classe (appelée classe dérivée ou sous-classe) hérite des attributs et des méthodes de la
classe de base (ou super-classe). Cela permet de réutiliser le code et de créer des hiérarchies de
classes.

1. Exemple d'héritage
class Vehicule:
def __init__(self, marque, modele):
[Link] = marque
[Link] = modele

def demarrer(self):
print(f"Le {[Link]} {[Link]} démarre.")

# Sous-classe qui hérite de la classe Vehicule


class Moto(Vehicule):
def __init__(self, marque, modele, type_moto):
super().__init__(marque, modele) # Appel du constructeur de la classe
de base
self.type_moto = type_moto

def demarrer(self):
print(f"La moto {[Link]} {[Link]} de type {self.type_moto}
démarre.")

# Création d'un objet de la classe Moto


ma_moto = Moto("Yamaha", "MT-07", "sport")
ma_moto.demarrer() # Affiche "La moto Yamaha MT-07 de type sport démarre."

D. Polymorphisme
Le polymorphisme permet d'utiliser une méthode de la même manière sur différents objets. Cela
signifie que vous pouvez appeler la même méthode sur des objets de différentes classes, et chaque
classe peut avoir sa propre implémentation de cette méthode.
Exemple de polymorphisme :
def faire_demarrer(vehicule):
[Link]()

faire_demarrer(ma_voiture) # Appelle la méthode demarrer de Voiture


faire_demarrer(ma_moto) # Appelle la méthode demarrer de Moto

II-Différence entre la programmation structurée et la POO.


A. Définition
1. Programmation structurée
La programmation structurée est un paradigme de programmation qui repose sur l'utilisation de
structures de contrôle (comme les boucles, les conditions et les instructions séquentielles) pour
organiser le code. Elle vise à améliorer la clarté et la qualité du code en évitant le recours à des
instructions de saut (comme goto).
2. Programmation orientée objet (POO)
La programmation orientée objet est un paradigme qui organise le code autour des "objets", qui
combinent données et comportements. La POO utilise des concepts tels que les classes, les objets,
l'héritage et le polymorphisme pour modéliser des systèmes complexes de manière plus intuitive.

B. Principes fondamentaux

C. Avantages et inconvénients
1. Programmation structurée
 Avantages :
 Simplicité : Facile à comprendre et à mettre en œuvre pour de petits programmes.
 Clarté : Utilise des structures de contrôle claires.
 Inconvénients :
 Difficulté à gérer des projets complexes : La séparation des données et des fonctions
peut rendre le code difficile à suivre.
 Réutilisabilité limitée : Moins de mécanismes pour réutiliser le code.

2. Programmation orientée objet


 Avantages :
 Modélisation intuitive : Permet de modéliser des systèmes complexes de manière
naturelle.
 Réutilisabilité : Favorise la réutilisation du code par héritage et polymorphisme.
 Encapsulation : Protège l'état interne des objets.
 Inconvénients :
 Complexité initiale : Peut être plus difficile à comprendre pour les débutants.
 Surcharge de conception : Peut nécessiter plus de temps de conception pour créer des
classes et des objets.
III-Création de classes simples.

A. Qu'est-ce qu'une classe ?


Une classe est une structure de base en programmation orientée objet qui définit un type d'objet.
Elle encapsule des données (attributs) et des comportements (méthodes) associés à cet objet.

B. Syntaxe de base d'une classe


La syntaxe pour définir une classe en Python est la suivante :
class NomDeClasse:
def __init__(self, param1, param2):
# Initialisation des attributs de l'objet
self.attribut1 = param1
self.attribut2 = param2

def methode(self):
# Comportement de l'objet
pass

Signification de chaque composant


1. class NomDeClasse:
 class : Mot-clé utilisé pour définir une nouvelle classe.
 NomDeClasse : Nom de la classe. Il est d'usage d'utiliser la convention de nommage en
CamelCase (majuscule au début de chaque mot). Ce nom sera utilisé pour créer des objets de
ce type.

2. def __init__(self, param1, param2):


 def : Mot-clé utilisé pour définir une nouvelle fonction ou méthode.
 init : Méthode spéciale appelée le constructeur. Elle est automatiquement appelée lorsque
vous créez une nouvelle instance de la classe. Son rôle est d'initialiser les attributs de l'objet.
 self : Référence à l'instance actuelle de la classe. Elle est utilisée pour accéder aux attributs
et aux méthodes de l'objet. Chaque méthode d'une classe doit inclure self comme premier
paramètre.
 param1, param2 : Paramètres que vous pouvez passer lors de la création d'un objet. Ce sont
des valeurs qui seront utilisées pour initialiser les attributs de l'objet.

3. self.attribut1 = param1
 self.attribut1 : Un attribut de l'objet, qui sera accessible depuis d'autres méthodes de la
classe. C'est une variable qui stocke l'état de l'objet.
 param1 : Valeur passée lors de la création de l'objet, qui est assignée à l'attribut
attribut1.
4. self.attribut2 = param2
 self.attribut2 : Un autre attribut de l'objet, similaire à attribut1.
 param2 : Valeur passée lors de la création de l'objet, assignée à l'attribut attribut2.

5. def methode(self):
 def : Mot-clé pour définir une méthode de la classe.
 methode : Nom de la méthode. Les noms de méthodes suivent généralement la convention
de nommage en minuscules, avec des mots séparés par des underscores si nécessaire.
 self : Référence à l'instance actuelle, comme pour le constructeur.

6. pass
 pass : Un mot-clé qui indique que la méthode ne fait rien pour le moment. C'est un espace
réservé qui peut être remplacé plus tard par du code fonctionnel. Cela permet de définir la
structure de la méthode sans la mettre en œuvre immédiatement.

Exemple d'utilisation
Pour illustrer, voici comment vous pourriez utiliser cette classe :
class Personne:
def __init__(self, nom, age):
[Link] = nom
[Link] = age

def se_presenter(self):
print(f"Bonjour, je m'appelle {[Link]} et j'ai {[Link]} ans.")

# Création d'un objet de la classe Personne


personne1 = Personne("Alice", 30)
personne1.se_presenter() # Affiche "Bonjour, je m'appelle Alice et j'ai 30
ans."

Dans cet exemple, nom et age sont des paramètres passés au constructeur, qui sont ensuite utilisés
pour initialiser les attributs [Link] et [Link]. La méthode se_presenter permet à
l'objet de se présenter en utilisant ses attributs.

C. Exemple de classe simple


Voici un exemple de classe représentant une Personne :
class Personne:
def __init__(self, nom, age):
[Link] = nom # Attribut pour le nom
[Link] = age # Attribut pour l'âge

def se_presenter(self):
"""Méthode pour présenter la personne."""
print(f"Bonjour, je m'appelle {[Link]} et j'ai {[Link]} ans.")

D. Création d'objets à partir de la classe


Pour créer un objet à partir de cette classe, vous pouvez utiliser le constructeur de la classe :
# Création d'objets
personne1 = Personne("Alice", 30)
personne2 = Personne("Bob", 25)

# Appel de la méthode se_presenter


personne1.se_presenter() # Affiche "Bonjour, je m'appelle Alice et j'ai 30
ans."
personne2.se_presenter() # Affiche "Bonjour, je m'appelle Bob et j'ai 25 ans."

E. Ajout de méthodes
Vous pouvez ajouter plusieurs méthodes à une classe pour définir différents comportements. Par
exemple, ajoutons une méthode pour célébrer un anniversaire :
class Personne:
def __init__(self, nom, age):
[Link] = nom
[Link] = age

def se_presenter(self):
print(f"Bonjour, je m'appelle {[Link]} et j'ai {[Link]} ans.")

def anniversaire(self):
[Link] += 1
print(f"{[Link]} a maintenant {[Link]} ans.")

Utilisation de la méthode anniversaire :


[Link]() # Affiche "Alice a maintenant 31 ans."

Vous aimerez peut-être aussi