Introduction à Python
Emmanuel Evilafo
2024
Module 1 : Introduction à Python et Premiers Pas
Durée : 2 heures
Objectifs :
• Comprendre les bases de Python et ses domaines d’application.
• Installer Python et Anaconda pour un environnement de développement complet.
• Écrire et exécuter un premier programme Python.
1.1 Présentation de Python (30 minutes)
Qu'est-ce que Python ?
Python est un langage de programmation de haut niveau créé par Guido van Rossum en
1991. Reconnu pour sa simplicité, sa lisibilité et sa polyvalence, Python est utilisé dans
plusieurs domaines, notamment :
• Développement web : avec des frameworks comme Django et Flask.
• Data science : manipulation et analyse de données avec des bibliothèques telles que
NumPy, Pandas, et Matplotlib.
• Automatisation des tâches : scripts pour automatiser des processus répétitifs.
• Intelligence artificielle et apprentissage automatique : grâce à des outils comme
TensorFlow et PyTorch.
Pourquoi apprendre Python ?
• Facilité d’apprentissage : Syntaxe claire et intuitive, idéale pour les débutants.
• Polyvalence : Utilisé dans une grande variété de projets.
• Large écosystème : Nombreuses bibliothèques pour accélérer le développement.
• Communauté active : Documentation et support facilement disponibles.
1.2 Installation de Python et Anaconda (40 minutes)
Installation de Python
1. Rendez-vous sur le site officiel [Link]/downloads.
2. Téléchargez et installez la version appropriée pour votre système d’exploitation.
3. Pendant l'installation, cochez l’option "Add Python to PATH" pour permettre à
votre système de reconnaître Python dans le terminal.
Installation d'Anaconda
Anaconda est une distribution Python qui comprend plusieurs bibliothèques essentielles ainsi
que des outils comme Jupyter Notebook pour faciliter l’écriture de code interactif.
1. Téléchargez Anaconda depuis [Link].
2. Suivez les instructions d’installation pour votre système d'exploitation.
3. Une fois installé, ouvrez Anaconda Navigator pour gérer vos environnements et
accéder à des applications telles que Jupyter Notebook et Spyder.
Vérification de l'installation
Après l’installation d’Anaconda, ouvrez un terminal (ou Anaconda Prompt) et tapez la
commande suivante pour vérifier que tout est en place :
bash
conda --version
Cette commande doit retourner la version de Conda, l'outil de gestion d'environnement
d'Anaconda.
Lancement de Jupyter Notebook avec Anaconda
1. Ouvrez Anaconda Navigator.
2. Dans le tableau de bord, cliquez sur Jupyter Notebook pour lancer l'application.
3. Cela ouvrira une interface web vous permettant de créer et exécuter des notebooks
Python.
1.3 Écriture et exécution de votre premier programme (50 minutes)
Le classique "Hello, World!"
Pour commencer, écrivons un programme simple. Dans Jupyter Notebook ou un éditeur de
code (comme VSCode ou Spyder), tapez le code suivant :
print("Hello, World!")
Lorsque vous exécutez ce programme, il affichera :
Hello, World!
• Explication :
o La fonction print() affiche du texte à l'écran.
o "Hello, World!" est une chaîne de caractères (texte délimité par des
guillemets).
Variables et types de données
Python permet de stocker des informations dans des variables. Les types de données les plus
courants incluent :
• Entiers (int) : des nombres entiers, par exemple : 42.
• Flottants (float) : des nombres décimaux, par exemple : 3.14.
• Chaînes de caractères (str) : du texte, par exemple : "Bonjour".
• Booléens (bool) : valeurs logiques, True ou False.
Exemple :
nom = "Alice"
age = 25
est_majeur = True
print(nom, "a", age, "ans. Est-elle majeure ?", est_majeur)
Interagir avec l'utilisateur
Vous pouvez demander des informations à l’utilisateur à l’aide de la fonction input() :
nom = input("Entrez votre nom : ")
print("Bonjour", nom, "!")
Cela permet à l’utilisateur d’entrer son nom, et le programme lui répond de manière
personnalisée.
Manipulations basiques
Exemple d’opérations sur des nombres :
a = 10
b = 3
print("Addition :", a + b)
print("Soustraction :", a - b)
print("Multiplication :", a * b)
print("Division :", a / b)
print("Division entière :", a // b)
Ce programme exécute des opérations arithmétiques simples.
1.4 Exercice pratique et Questions/Réponses (20 minutes)
Exercice : Créer un programme interactif
Écrivez un programme qui demande le nom et l'âge de l'utilisateur, puis affiche un message
personnalisé :
nom = input("Quel est votre nom ? ")
age = int(input("Quel est votre âge ? "))
print("Bonjour", nom, "! Vous avez", age, "ans.")
Cet exercice permet de consolider les bases : interaction avec l'utilisateur, utilisation de
variables et manipulation de types de données.
Module 2 : Variables, Opérations et Fonctions
Durée : 2 heures
Objectifs :
• Comprendre et manipuler les variables et les types de données en Python.
• Utiliser les opérateurs mathématiques et logiques.
• Créer et utiliser des fonctions pour structurer le code.
2.1 Variables et Types de Données (30 minutes)
Définition d'une variable
Une variable est une boîte qui stocke des informations. En Python, il suffit d’attribuer une
valeur à un nom de variable pour la créer :
nom = "Alice"
age = 30
Ici, nom est une variable de type chaîne de caractères (str) et age est une variable de type
entier (int).
Types de données de base en Python
Python prend en charge plusieurs types de données natifs, notamment :
• Entiers (int) : pour les nombres entiers.
• Flottants (float) : pour les nombres à virgule flottante.
• Chaînes de caractères (str) : pour du texte.
• Booléens (bool) : True ou False, pour exprimer la logique.
Exemples :
temperature = 36.6 # Type float
prenom = "Jean" # Type str
est_actif = True # Type bool
Typecasting (conversion de types)
Il est parfois nécessaire de convertir un type de données en un autre. Par exemple, convertir
une chaîne en nombre :
age = int(input("Entrez votre âge : ")) # Conversion en entier
taille = float(input("Entrez votre taille : ")) # Conversion en flottant
Python offre des fonctions intégrées telles que int(), float(), str() pour convertir entre les
types de données.
2.2 Opérations et opérateurs en Python (30 minutes)
Opérateurs arithmétiques
Les opérateurs de base permettent de faire des calculs sur des nombres :
Opérateur Description Exemple
+ Addition 3 + 2 = 5
- Soustraction 3 - 2 = 1
* Multiplication 3 * 2 = 6
/ Division 3 / 2 = 1.5
// Division entière 3 // 2 = 1
% Modulo (reste de division) 3 % 2 = 1
** Exponentiation (puissance) 3 ** 2 = 9
Exemple d'utilisation :
a = 5
b = 2
print("Addition :", a + b)
print("Division entière :", a // b)
print("Puissance :", a ** b)
Opérateurs de comparaison
Ces opérateurs permettent de comparer des valeurs et retournent des booléens (True ou
False) :
Opérateur Description Exemple
== Égal à 3 == 3 -> True
!= Différent de 3 != 2 -> True
> Supérieur à 3 > 2 -> True
< Inférieur à 2 < 3 -> True
>= Supérieur ou égal à 3 >= 3 -> True
<= Inférieur ou égal à 2 <= 3 -> True
Opérateurs logiques
Les opérateurs logiques sont utilisés pour combiner des conditions :
Opérateur Description Exemple
and Les deux doivent être vraies (a > 1) and (b < 5)
or L'une ou l'autre doit être vraie (a > 1) or (b > 5)
not Inverse la condition not(a > 1)
Exemple d’utilisation des opérateurs logiques :
a = 5
b = 2
print((a > 3) and (b < 5)) # True
2.3 Fonctions en Python (60 minutes)
Qu'est-ce qu'une fonction ?
Une fonction est un bloc de code qui effectue une tâche spécifique et peut être réutilisé.
Python propose de nombreuses fonctions intégrées (comme print()), mais vous pouvez
également définir vos propres fonctions.
Définition d'une fonction
Une fonction est définie avec le mot-clé def, suivi du nom de la fonction et de parenthèses.
Exemple :
def dire_bonjour():
print("Bonjour, tout le monde!")
Pour appeler cette fonction, il suffit d’écrire :
dire_bonjour() # Affichera : Bonjour, tout le monde!
Fonctions avec paramètres
Les fonctions peuvent prendre des paramètres qui sont des données fournies lors de l'appel
de la fonction :
def saluer(nom):
print("Bonjour,", nom)
Appel de la fonction avec un argument :
saluer("Alice") # Affichera : Bonjour, Alice
Fonctions avec retour de valeur
Les fonctions peuvent également renvoyer des valeurs à l’aide du mot-clé return :
def additionner(a, b):
return a + b
Appel de la fonction :
resultat = additionner(3, 4)
print(resultat) # Affichera : 7
Portée des variables (variables locales et globales)
Les variables définies à l'intérieur d'une fonction sont locales à cette fonction et ne peuvent
pas être utilisées à l'extérieur. À l'inverse, les variables globales peuvent être accessibles dans
toute la durée du programme.
Exemple :
x = 10 # Variable globale
def ma_fonction():
x = 5 # Variable locale
print("Dans la fonction :", x)
ma_fonction() # Affiche : 5
print("En dehors de la fonction :", x) # Affiche : 10
2.4 Exercice pratique et Questions/Réponses (30 minutes)
Exercice : Créer une calculatrice simple
Demandez à l’utilisateur d’entrer deux nombres et une opération (addition, soustraction,
multiplication, division) et affichez le résultat.
def calculatrice(a, b, operation):
if operation == '+':
return a + b
elif operation == '-':
return a - b
elif operation == '*':
return a * b
elif operation == '/':
return a / b
else:
return "Opération non valide"
# Utilisation
a = float(input("Entrez le premier nombre : "))
b = float(input("Entrez le deuxième nombre : "))
operation = input("Entrez l'opération (+, -, *, /) : ")
resultat = calculatrice(a, b, operation)
print("Le résultat est :", resultat)
Cet exercice vous permettra de manipuler des fonctions, des variables et des opérateurs.
Module 3 : Structures de Contrôle
Durée : 2 heures
Objectifs :
• Comprendre et utiliser les structures de contrôle en Python.
• Maîtriser les conditions avec if, elif, et else.
• Utiliser les boucles for et while pour répéter des instructions.
• Comprendre les boucles imbriquées et les interruptions avec break et continue.
3.1 Les Conditions : if, elif, else (40 minutes)
Les structures conditionnelles permettent de contrôler le flux d'exécution du programme en
fonction de conditions logiques.
Structure de base
La condition if permet d'exécuter un bloc de code seulement si une condition est vraie :
age = 18
if age >= 18:
print("Vous êtes majeur.")
Si la condition est fausse, le bloc else est exécuté :
age = 16
if age >= 18:
print("Vous êtes majeur.")
else:
print("Vous êtes mineur.")
Utilisation de elif pour plusieurs conditions
La clause elif (else if) permet de tester plusieurs conditions dans une structure :
note = 15
if note >= 16:
print("Très bien.")
elif note >= 12:
print("Bien.")
elif note >= 10:
print("Passable.")
else:
print("Insuffisant.")
Conditions imbriquées
Vous pouvez imbriquer des conditions pour des cas plus complexes :
age = 20
nationalite = "française"
if age >= 18:
if nationalite == "française":
print("Vous pouvez voter en France.")
else:
print("Vous ne pouvez pas voter en France.")
else:
print("Vous n'êtes pas encore majeur.")
3.2 Les Boucles : for et while (50 minutes)
Les boucles permettent d'exécuter un bloc de code plusieurs fois. Python propose deux types
de boucles principales : for et while.
La boucle for
La boucle for est utilisée pour parcourir une séquence (liste, chaîne de caractères, etc.).
# Parcourir une liste
fruits = ["pomme", "banane", "cerise"]
for fruit in fruits:
print(fruit)
Utilisation de range() dans une boucle for
La fonction range() génère une séquence de nombres, très utile pour contrôler le nombre
d'itérations dans une boucle :
for i in range(5):
print("Itération", i)
Cela affichera les valeurs de i de 0 à 4.
Vous pouvez aussi spécifier un début, une fin et un pas dans range() :
for i in range(2, 10, 2): # De 2 à 10, avec un pas de 2
print(i)
La boucle while
La boucle while continue tant qu’une condition donnée est vraie :
compteur = 0
while compteur < 5:
print("Compteur :", compteur)
compteur += 1 # Augmente le compteur de 1
La boucle while est utile lorsque vous ne connaissez pas à l’avance le nombre d’itérations
nécessaires.
Boucles infinies et comment les éviter
Faites attention aux boucles infinies ! Si la condition d’arrêt d’une boucle while n’est jamais
remplie, la boucle continuera indéfiniment. Par exemple :
while True:
print("Cette boucle ne s'arrête jamais")
Cela crée une boucle infinie ; pour l’arrêter, utilisez Ctrl+C dans le terminal.
3.3 Contrôler le flux des boucles : break et continue (30 minutes)
Utilisation de break
La commande break interrompt immédiatement une boucle, même si la condition n’est pas
remplie ou les itérations ne sont pas terminées :
for i in range(10):
if i == 5:
break # La boucle se termine dès que i vaut 5
print(i)
Utilisation de continue
La commande continue saute une itération, mais continue la boucle pour les itérations
suivantes :
for i in range(5):
if i == 3:
continue # Saute l'affichage de 3
print(i)
3.4 Boucles imbriquées (30 minutes)
Les boucles peuvent être imbriquées, c’est-à-dire qu’une boucle peut être à l'intérieur d’une
autre boucle. Par exemple, pour parcourir une matrice (tableau à deux dimensions) :
matrice = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for ligne in matrice:
for element in ligne:
print(element, end=" ")
print() # Saut de ligne après chaque ligne de la matrice
Cet exemple affiche chaque élément de la matrice sur une ligne séparée.
Exemple pratique : Imprimer un triangle d'étoiles
n = 5
for i in range(1, n + 1):
for j in range(i):
print("*", end="")
print() # Saut de ligne à la fin de chaque ligne
Résultat pour n = 5 :
markdown
*
**
***
****
*****
3.5 Exercice pratique et Questions/Réponses (30 minutes)
Exercice : Jeu de devinettes
Créez un jeu où l'ordinateur génère un nombre aléatoire entre 1 et 20, et l'utilisateur doit
deviner ce nombre. Après chaque tentative, le programme doit dire si le nombre est plus petit
ou plus grand. Si l'utilisateur devine correctement, le jeu se termine.
import random
nombre_mystere = [Link](1, 20)
essai = 0
devine = False
while not devine:
nombre = int(input("Devinez le nombre (entre 1 et 20) : "))
essai += 1
if nombre == nombre_mystere:
print(f"Bravo ! Vous avez trouvé en {essai} essai(s).")
devine = True
elif nombre < nombre_mystere:
print("Trop petit.")
else:
print("Trop grand.")
Module 4 : Structures de Données (Listes, Tuples, Vecteurs, Matrices)
Durée : 2 heures
Objectifs :
• Comprendre et utiliser les principales structures de données en Python.
• Maîtriser la manipulation des listes et tuples.
• Introduction aux vecteurs et matrices avec la bibliothèque NumPy.
• Appliquer des méthodes et des fonctions sur les structures de données.
4.1 Les Listes en Python (40 minutes)
Les listes sont l'une des structures de données les plus utilisées en Python. Elles permettent de
stocker une collection ordonnée d'éléments, qui peuvent être modifiés après leur création.
Création et manipulation de listes
Une liste est créée en plaçant des éléments entre des crochets [ ], séparés par des virgules :
fruits = ["pomme", "banane", "cerise"]
Accéder aux éléments d'une liste
Les éléments d’une liste sont accessibles via leur index (position dans la liste, commençant à
0) :
print(fruits[0]) # Affiche "pomme"
print(fruits[2]) # Affiche "cerise"
Modifier les éléments d'une liste
Les listes sont mutables, ce qui signifie que vous pouvez changer leurs éléments après leur
création :
fruits[1] = "orange"
print(fruits) # Affiche ['pomme', 'orange', 'cerise']
Méthodes utiles pour les listes
Python propose plusieurs méthodes pour manipuler des listes :
Méthode Description Exemple
append(x) Ajoute un élément à la fin de la liste [Link]("mangue")
remove(x) Supprime le premier élément égal à x [Link]("orange")
pop(i) Supprime et retourne l'élément à l'index i [Link](1)
sort() Trie la liste en place [Link]()
reverse() Inverse l'ordre des éléments [Link]()
len() Retourne la longueur de la liste len(fruits)
Parcourir une liste avec une boucle
Il est facile de parcourir une liste avec une boucle for :
for fruit in fruits:
print(fruit)
Vous pouvez également utiliser la fonction enumerate() pour obtenir à la fois les indices et
les éléments :
for index, fruit in enumerate(fruits):
print(index, fruit)
4.2 Les Tuples en Python (20 minutes)
Les tuples sont similaires aux listes, mais ils sont immuables, c'est-à-dire que leurs éléments
ne peuvent pas être modifiés une fois créés.
Création de tuples
Un tuple est défini en plaçant les éléments entre des parenthèses () :
couleurs = ("rouge", "vert", "bleu")
Accéder aux éléments d'un tuple
Les éléments d'un tuple sont accessibles de la même manière que pour les listes :
print(couleurs[1]) # Affiche "vert"
Immuabilité des tuples
Contrairement aux listes, il est impossible de modifier les éléments d’un tuple :
# couleurs[1] = "jaune" # Provoquerait une erreur
Cependant, vous pouvez toujours accéder aux éléments et les parcourir avec une boucle for :
for couleur in couleurs:
print(couleur)
Utilisations courantes des tuples
Les tuples sont souvent utilisés pour :
• Stocker des collections d'éléments qui ne doivent pas être modifiés.
• Retourner plusieurs valeurs à partir d'une fonction.
4.3 Introduction aux Vecteurs et Matrices avec NumPy (60 minutes)
Les vecteurs et matrices sont des structures de données essentielles pour la manipulation de
données numériques, notamment en data science et en calcul scientifique. NumPy est une
bibliothèque Python qui permet de travailler facilement avec des vecteurs et des matrices.
Installation de NumPy
Si NumPy n'est pas installé, utilisez la commande suivante dans votre terminal pour
l'installer :
bash
pip install numpy
Création d'un vecteur (tableau unidimensionnel)
En NumPy, les vecteurs sont appelés tableaux (ndarray). Voici comment créer un tableau
unidimensionnel :
import numpy as np
vecteur = [Link]([1, 2, 3, 4, 5])
print(vecteur)
Création d'une matrice (tableau multidimensionnel)
Une matrice est un tableau à deux dimensions :
matrice = [Link]([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(matrice)
Accéder aux éléments d'un tableau NumPy
Les éléments d'un tableau NumPy sont accessibles de la même manière que pour les listes, en
utilisant des indices :
print(vecteur[2]) # Affiche 3
print(matrice[1, 2]) # Affiche 6 (ligne 2, colonne 3)
Opérations sur les tableaux NumPy
NumPy facilite les opérations mathématiques sur les tableaux :
# Opérations élémentaires
vecteur2 = vecteur + 2
print(vecteur2) # Affiche [3, 4, 5, 6, 7]
# Addition de deux vecteurs
vecteur3 = vecteur + [Link]([5, 4, 3, 2, 1])
print(vecteur3) # Affiche [6, 6, 6, 6, 6]
# Multiplication d'une matrice par un scalaire
matrice2 = matrice * 2
print(matrice2) # Chaque élément de la matrice est multiplié par 2
Méthodes et opérations courantes avec NumPy
Voici quelques fonctions courantes pour manipuler des tableaux NumPy :
Fonction Description Exemple
[Link]() Crée un tableau rempli de zéros [Link]((2, 3))
[Link]() Crée un tableau rempli de 1 [Link]((3, 3))
[Link]() Change la forme d'un tableau [Link]((5, 1))
[Link]() Calcule la somme des éléments [Link](matrice)
[Link]() Calcule la moyenne des éléments [Link](vecteur)
[Link]() Produit matriciel (dot product) [Link](matrice, matrice)
4.4 Exercice pratique et Questions/Réponses (30 minutes)
Exercice : Manipuler des listes et des tableaux NumPy
1. Manipuler une liste : Créez une liste de vos cinq plats préférés. Modifiez un élément
de la liste, puis ajoutez un nouveau plat à la fin. Enfin, triez la liste par ordre
alphabétique.
2. Manipuler un tableau NumPy : Créez une matrice NumPy de taille 3x3. Multipliez
chaque élément par 3, puis calculez la somme de tous les éléments.
Exemple :
# Liste des plats
plats = ["Pizza", "Burger", "Salade", "Sushi", "Tacos"]
plats[2] = "Pâtes"
[Link]("Ramen")
[Link]()
print(plats)
# Matrice NumPy
import numpy as np
matrice = [Link]([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
matrice = matrice * 3
print("Matrice multipliée par 3 :", matrice)
print("Somme des éléments :", [Link](matrice))