Académique Documents
Professionnel Documents
Culture Documents
Regis N’guessan
@Regis
LinkedIn
YouTube
2
Programmation Python pour Résoudre des Problèmes
Africains
Regis N’guessan
30 septembre 2023
ii
Table des matières
Préambule 1
1 Installation de Python 3
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Installation de Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Téléchargement de Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Installation de Python sur Windows . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.3 Installation de Python sur macOS . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.4 Installation de Python sur Linux . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.5 Vérification de l’installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Les Fonctions 9
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 Définition de fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.1 Création de fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.2 Paramètres et arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.3 Fonctions intégrées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3 Utilisation de fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3.1 Appel de fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3.2 Valeurs de retour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4 Documentation de fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.5 Exemple d’application : Calcul du PIB par habitant au Bénin . . . . . . . . . . . . . 10
3.5.1 Code Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.5.2 Explications du code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
iii
iv TABLE DES MATIÈRES
Bienvenue dans ce livre sur la programmation Python dédié à l’Afrique. Ce livre est conçu pour
tous ceux qui souhaitent acquérir des compétences en programmation tout en abordant les problèmes
réels de l’environnement africain. Que vous soyez un étudiant, un professionnel ou simplement quel-
qu’un désireux d’apprendre à coder, ce livre est destiné à vous aider à développer votre expertise en
programmation tout en relevant les défis auxquels l’Afrique est confrontée.
Pourquoi ce livre ?
L’Afrique est un continent dynamique et en pleine croissance, qui fait face à une multitude de
défis et d’opportunités. Dans ce contexte, la programmation informatique offre un outil puissant
pour résoudre des problèmes concrets et contribuer au développement durable de l’Afrique. Ce livre
vise à :
— Autonomiser les Apprenants : La programmation donne aux apprenants africains la
possibilité de créer des solutions innovantes à des problèmes locaux, favorisant ainsi l’auto-
nomisation et l’initiative individuelle.
— Développer des Compétences Incontournables : La maîtrise de la programmation est
devenue une compétence clé dans l’économie mondiale. Elle offre des opportunités de carrière
dans divers domaines, de la technologie à la finance en passant par la santé.
— Résoudre des Problèmes Locaux : En abordant des problèmes spécifiques à l’Afrique,
ce livre montre comment la programmation peut être utilisée pour résoudre des défis tels
que la gestion des ressources naturelles, le suivi de la santé publique et le développement
économique.
— Promouvoir la Créativité : La programmation encourage la créativité en permettant aux
apprenants de concevoir des applications, des sites Web, des systèmes automatisés et bien
plus encore.
Structure du Livre
Ce livre est structuré en une série de chapitres, chacun se concentrant sur un aspect spécifique
de la programmation Python. Nous commençons par les bases et progressons vers des concepts plus
avancés, tout en abordant des problèmes réels rencontrés en Afrique. Chaque chapitre comprend des
exemples de code, des exercices pratiques et des projets concrets pour renforcer votre apprentissage.
1
2 TABLE DES MATIÈRES
Regis N’guessan
Chapitre 1
Installation de Python
1.1 Introduction
Dans ce premier chapitre, nous allons vous guider à travers le processus d’installation de Python
sur votre ordinateur. Python est un langage de programmation puissant et polyvalent, largement
utilisé pour résoudre une variété de problèmes, y compris ceux auxquels l’Afrique est confrontée.
Nous allons également explorer quelques exemples de problèmes africains qui peuvent être abordés
avec Python.
Lancement de l’installeur
Double-cliquez sur le fichier d’installation téléchargé. Cochez la case "Add Python to PATH"
lors de l’installation pour rendre Python accessible depuis n’importe quel répertoire.
Installation
Suivez les instructions à l’écran pour terminer l’installation.
3
4 CHAPITRE 1. INSTALLATION DE PYTHON
Lancement de l’installeur
Ouvrez le fichier d’installation téléchargé.
Installation
Suivez les instructions à l’écran pour terminer l’installation.
2.1 Introduction
Dans ce chapitre, nous allons explorer les bases de la programmation Python. Vous apprendrez
les concepts fondamentaux, y compris les variables, les opérateurs, les structures de contrôle, et les
fonctions. Ces concepts sont essentiels pour résoudre les problèmes africains que nous aborderons
plus tard dans ce livre.
nom = "John"
age = 30
nombre = 42
texte = str(nombre) % Convertit le nombre en une chaîne de caractères
2.2.4 Commentaires
Les commentaires sont des annotations dans le code Python qui ne sont pas exécutées. Ils com-
mencent par le symbole "# " et sont utiles pour expliquer le code. Par exemple :
5
6 CHAPITRE 2. LES BASES DE PYTHON
age = 18
if age < 18:
print("Vous êtes mineur.")
else:
print("Vous êtes majeur.")
nombres = [1, 2, 3, 4, 5]
for nombre in nombres:
print(nombre)
Les Fonctions
3.1 Introduction
Les fonctions sont des éléments essentiels de la programmation Python. Elles vous permettent de
regrouper des blocs de code en une unité logique et réutilisable. Dans ce chapitre, nous explorerons
en détail la création et l’utilisation des fonctions, ainsi que leur rôle dans la résolution de problèmes
africains.
def saluer():
print("Bonjour, comment ça va ?")
def dire_bonjour(nom):
print("Bonjour, " + nom + " !")
9
10 CHAPITRE 3. LES FONCTIONS
# Données du Bénin
pib_benin = 12209 # En millions de dollars
population_benin = 12209 # En millions d’habitants
# Affichage du résultat
print("Le PIB par habitant au Bénin est de", pib_par_habitant_benin, "dollars par habitant.")
et sa population est également de 12 209 millions d’habitants (ce sont des données factices
à des fins d’exemple).
Enfin, nous avons affiché le résultat à l’aide de la fonction print().
Ce code Python peut être exécuté dans un environnement Python pour obtenir le résultat
du calcul du PIB par habitant.
12 CHAPITRE 3. LES FONCTIONS
Chapitre 4
4.1 Introduction
Les listes et les dictionnaires sont des structures de données essentielles en Python.
Dans ce chapitre, nous allons les explorer en profondeur et apprendre comment les utiliser
pour résoudre des problèmes africains.
13
14 CHAPITRE 4. LES LISTES ET LES DICTIONNAIRES
# Utilisation du programme
print(verifier_stock("Paracétamol")) # Vérifier la quantité de Paracétamol en stock
commander_medicaments("Vitamine C", 20) # Commander 20 comprimés de Vitamine C
print(verifier_stock("Vitamine C")) # Vérifier la quantité de Vitamine C en stock
print(vendre_medicament("Paracétamol", 10)) # Vendre 10 comprimés de Paracétamol
print(verifier_stock("Paracétamol")) # Vérifier la quantité de Paracétamol en stock
5.1 Introduction
Dans ce chapitre, nous allons explorer des concepts avancés liés aux fonctions en
Python. Vous découvrirez comment créer des fonctions récursives, utiliser des fonctions
lambda, et comprendre la portée des variables.
17
18 CHAPITRE 5. LES FONCTIONS AVANCÉES
5.6.2 Objectif
Créer un programme Python qui calcule le nombre total d’étudiants inscrits dans tout
le Burkina Faso en fonction des données de chaque région et de ses écoles primaires,
secondaires et supérieures.
1 def n o m b r e _ e t u d i a n t s _ p r i m a i r e ( n ) :
2 if n == 0:
3 return 0 # Cas de base : aucune cole primaire
4 else :
5 return 500 + n o m b r e _ e t u d i a n t s _ p r i m a i r e ( n - 1)
6
7 def n o m b r e _ e t u d i a n t s _ s e c o n d a i r e ( n ) :
8 if n == 0:
9 return 0 # Cas de base : aucune cole secondaire
10 else :
11 return 300 + n o m b r e _ e t u d i a n t s _ s e c o n d a i r e ( n - 1)
12
13 def n o m b r e _ e t u d i a n t s _ s u p e r i e u r ( n ) :
14 if n == 0:
15 return 0 # Cas de base : aucune cole sup rieure
16 else :
17 return 100 + n o m b r e _ e t u d i a n t s _ s u p e r i e u r ( n - 1)
6.1 Introduction
Dans ce chapitre, nous allons découvrir comment organiser notre code en utilisant
des modules et des packages en Python. Les modules sont des fichiers Python contenant
des fonctions et des variables que vous pouvez réutiliser, tandis que les packages sont
des répertoires contenant plusieurs modules.
21
22 CHAPITRE 6. LES MODULES ET LES PACKAGES
import mon_package.module1
import mon_module as mm
6.5.3 Explication
Dans cet exemple, nous avons créé un système simple de gestion de la production agricole
en Côte d’Ivoire en utilisant Python. Voici comment cela fonctionne :
Organisation du Code
Nous avons structuré notre code en utilisant des modules et un package Python appelé
cotedivoire_agriculture. Voici comment les fichiers sont organisés :
— cotedivoire_agriculture/ : Le répertoire du package contenant nos modules.
— __init__.py : Un fichier spécial indiquant que ce répertoire est un package.
— production.py : Le module de collecte de données.
— analyse.py : Le module d’analyse de données.
Module production.py
Dans ce module, nous simulons la collecte de données sur la production agricole en
Côte d’Ivoire. Nous stockons ces données dans un dictionnaire avec des valeurs fictives
pour trois produits agricoles : cacao, café et huile de palme. La fonction collecter_donnees()
renvoie ce dictionnaire.
Module analyse.py
Ce module contient deux fonctions pour analyser les données de production :
— calculer_production_totale(donnees) : Cette fonction prend le dictionnaire de
données de production et calcule la production totale en additionnant les valeurs.
— produit_le_plus_produit(donnees) : Cette fonction trouve le produit agricole le
plus produit en Côte d’Ivoire en recherchant la clé associée à la valeur maximale
dans le dictionnaire.
24 CHAPITRE 6. LES MODULES ET LES PACKAGES
7.1 Introduction
Dans ce chapitre, nous allons explorer la manipulation des fichiers et des données
en Python. Vous apprendrez comment lire, écrire et manipuler des fichiers, ainsi que
travailler avec des données structurées, telles que les fichiers CSV, pour résoudre
des problèmes liés à l’économie africaine.
25
26 CHAPITRE 7. LA MANIPULATION DES FICHIERS ET DES DONNÉES
1 import csv
2
3 # Etape 0 : Creation du fichier CSV ( optionnel , si le fichier n ’ existe pas
encore )
4 donnees = [
5 [ " Annee " , " Production ␣ ( en ␣ tonnes ) " ] ,
6 [2010 , 1500000] ,
7 [2011 , 1550000] ,
8 [2012 , 1600000] ,
9 [2013 , 1620000] ,
10 [2014 , 1650000]
11 ]
12
13 nom_fichier = " production_cacao_ci . csv "
14
15 with open ( nom_fichier , ’w ’ , newline = ’ ’) as fichier_csv :
Regis N’guessan 27
Explication du Code
1. Nous importons le module csv pour travailler avec des fichiers CSV.
2. Nous ouvrons le fichier CSV en mode lecture (’r’) à l’aide d’une clause with pour
garantir que le fichier est correctement fermé après utilisation.
3. Nous utilisons csv.reader() pour lire les lignes du fichier CSV.
4. Nous lisons les en-têtes (première ligne) du fichier pour comprendre quelles données
nous avons.
5. Nous initialisons des listes (annees et productions) pour stocker les données
à partir du fichier.
6. Nous parcourons le fichier ligne par ligne et extrayons les années et les productions,
que nous stockons dans les listes correspondantes.
7. Nous calculons la production totale et la moyenne de production en utilisant les
données de la liste productions.
8. Nous déterminons l’année de production maximale en cherchant l’indice de la production
maximale dans la liste productions et en utilisant cet indice pour extraire l’année
correspondante de la liste annees.
28 CHAPITRE 7. LA MANIPULATION DES FICHIERS ET DES DONNÉES
Chapitre 8
8.1 Introduction
Dans ce chapitre, nous allons explorer comment créer des graphiques et visualiser
des données en Python. La visualisation de données est essentielle pour présenter des
informations de manière claire et convaincante. Nous utiliserons principalement la bibliothèque
Matplotlib, l’une des bibliothèques les plus populaires pour la visualisation de données
en Python.
29
30 CHAPITRE 8. LES GRAPHIQUES ET LA VISUALISATION DE DONNÉES
8.4.2 Sous-graphiques
Matplotlib permet de créer des sous-graphiques pour afficher plusieurs graphiques
dans une même figure.
9.1 Introduction
Dans ce chapitre, nous allons explorer comment interagir avec des bases de données
en utilisant Python. Les bases de données sont des outils essentiels pour stocker, organiser
et récupérer des données, ce qui les rend indispensables pour la gestion de données
dans de nombreux domaines, y compris l’économie africaine.
import sqlite3
connexion = sqlite3.connect(’ma_base_de_donnees.db’)
33
34 CHAPITRE 9. LES BASES DE DONNÉES
curseur = connexion.cursor()
curseur.execute("SELECT * FROM ma_table WHERE colonne = ’valeur’")
resultats = curseur.fetchall()
connexion.close()
— Enfin, nous fermons la connexion à la base de données lorsque nous avons terminé
de l’utiliser.
Chapitre 10
10.1 Introduction
Dans ce chapitre, nous allons plonger dans la programmation orientée objet (POO)
en Python. La POO est un paradigme de programmation qui repose sur la création d’objets,
des instances de classes, pour organiser et structurer votre code. La POO est largement
utilisée pour résoudre des problèmes complexes et est un concept fondamental en développement
logiciel.
class Voiture:
def __init__(self, marque, modele):
self.marque = marque
self.modele = modele
class Voiture:
def __init__(self, marque, modele):
self.marque = marque
self.modele = modele
37
38 CHAPITRE 10. LA PROGRAMMATION ORIENTÉE OBJET
10.3.2 Méthodes
Les méthodes sont des fonctions qui définissent les comportements d’un objet. Les
méthodes sont définies à l’intérieur de la classe et peuvent être appelées via l’objet.
class Voiture:
def __init__(self, marque, modele):
self.marque = marque
self.modele = modele
def demarrer(self):
print("La voiture démarre.")
10.4 Héritage
L’héritage est un concept clé de la POO qui permet de créer de nouvelles classes
en utilisant des classes existantes comme modèle. Les nouvelles classes héritent des
attributs et des méthodes de la classe parente.
class Vehicule:
def __init__(self, marque, modele):
self.marque = marque
self.modele = modele
def demarrer(self):
print("Le véhicule démarre.")
class Voiture(Vehicule):
def __init__(self, marque, modele, couleur):
super().__init__(marque, modele)
self.couleur = couleur
10.5 Encapsulation
L’encapsulation est un principe qui consiste à cacher les détails d’implémentation
d’une classe et à ne permettre l’accès qu’aux parties nécessaires. En Python, l’encapsulation
est souvent réalisée en utilisant des attributs privés et des méthodes d’accès (getters
et setters).
Regis N’guessan 39
1 class Client :
2 def __init__ ( self , nom , prenom , adresse , num_telephone ) :
3 self . nom = nom
4 self . prenom = prenom
5 self . adresse = adresse
6 self . num_telephone = num_telephone
7 self . comptes = []
8
9 def ouvrir_compte ( self , solde_initial ) :
10 if solde_initial >= 0:
11 nouveau_compte = Compte ( solde_initial )
12 self . comptes . append ( nouveau_compte )
13 print ( f " Compte ␣ c r ␣ pour ␣ { self . prenom } ␣ { self . nom } " )
14 else :
15 print ( " Le ␣ solde ␣ initial ␣ doit ␣ tre ␣ positif . " )
16
17 # ... ( Autres m t h o d e s de la classe Client )
18
19 class Compte :
20 numero_compte = 0 # Un compteur pour attribuer des n u m r o s de compte
uniques
21
22 def __init__ ( self , solde_initial ) :
23 Compte . numero_compte += 1
24 self . numero = Compte . numero_compte
25 self . solde = solde_initial
26
27 # ... ( Autres m t h o d e s de la classe Compte )
28
29 # Exemple d ’ utilisation
30 client1 = Client ( " Mukendi " , " Jean " , " Kinshasa " , " 123456789 " )
31 client1 . ouvrir_compte (50000)
32 client1 . ouvrir_compte (10000)
33 client1 . afficher_comptes ()
34
35 # ... ( O p r a t i o n s s u p p l m e n t a i r e s sur les comptes )
Nous avons créé deux classes principales : Client et Compte. La classe Client représente
un client de la banque avec ses informations personnelles et une liste de comptes. La
classe Compte représente un compte bancaire avec un numéro de compte unique et un solde.
40 CHAPITRE 10. LA PROGRAMMATION ORIENTÉE OBJET
Attributs et Méthodes
Les attributs sont des variables qui définissent les caractéristiques d’un objet.
Les méthodes sont des fonctions qui définissent les comportements d’un objet.
Héritage
L’héritage est utilisé pour créer une classe dérivée (Voiture) à partir d’une classe
parente (Vehicule). La classe dérivée hérite des attributs et des méthodes de la classe
parente.
Encapsulation
L’encapsulation est un principe de la POO qui consiste à cacher les détails d’implémentation
d’une classe. Nous avons utilisé des méthodes pour accéder aux attributs privés, par
exemple, client1.ouvrir_compte(50000).
Chapitre 11
41
42 CHAPITRE 11. PROJETS PYTHON POUR L’AFRIQUE
Dans ce chapitre, nous allons examiner les solutions pour les cinq projets Python
conçus pour résoudre des problèmes spécifiques en Afrique. Les solutions fournies sont
des exemples de code Python qui illustrent comment aborder chaque problème. Vous pouvez
les utiliser comme point de départ pour développer davantage ces projets ou pour résoudre
des problèmes similaires.
# Affichage du résultat
print(f"Le taux de croissance économique annuel moyen est de {taux_croissance:.2f}%")
43
CHAPITRE 12. DES APPROCHES DE SOLUTIONS AUX PROJETS PYTHON POUR
44 L’AFRIQUE
# Affichage du résultat
print(f"Le taux de croissance démographique annuel moyen est de {taux_croissance_demographique:.2f}%")
# Conversion du montant
montant_converti = montant_en_shillings * taux_de_change[devise_destination]
# Affichage du résultat
print(f"{montant_en_shillings} KES équivaut à {montant_converti} {devise_destination}")
# Entraînement du modèle
modele.fit(annees.reshape(-1, 1), recolte)
# Affichage du résultat
print(f"Prédiction de la récolte d’arachides en {annee_future} : {recolte_future[0]:.2f} tonnes")
# Conversion du montant
montant_converti = montant_en_zar * taux_de_change[devise_destination]
# Affichage du résultat
print(f"{montant_en_zar} ZAR équivaut à {montant_converti} {devise_destination}")
Ces solutions illustrent comment résoudre les problèmes spécifiques à chaque projet
en utilisant Python. Vous pouvez les personnaliser, les améliorer ou les étendre en
CHAPITRE 12. DES APPROCHES DE SOLUTIONS AUX PROJETS PYTHON POUR
46 L’AFRIQUE
Regis N’guessan,
Doctorant en Data Science, AIMS-QLA(African Institute for Mathematical
Sciences-Quantum Leap Africa)
Je vous invite également à me suivre sur mes différents réseaux sociaux pour rester
en contact. Vous pouvez me contacter, me poser des questions ou simplement discuter
de vos propres expériences en programmation Python. Vos réussites et vos défis sont
les bienvenus:
- @Mail
- YouTube