Structure de données et
Programmation en Python
Novembre 2025
Dr Gouayon KOALA
Institut de Formation Ouverte et A Distance (IFOAD)
Laboratoire de Mathématiques et d’Informatique (LAMI)
Université Joseph KI – ZERBO (UJKZ)
[email protected]
72 26 61 56
Objectifs du Cours
Apprendre les bases du langage Python, de la syntaxe à la gestion des
structures des données
Utiliser les bibliothèques standards et les outils de développement Python
Développer des applications simples et résoudre des problèmes concrets
en utilisant Python
Manipuler et visualiser les données avec Numpy, Matpotlib, Seaborn, etc.
Découvrir la programmation Orienté Objet avec Python
Compétences visées
Être autonome dans le développement d’une
application sous Python
Être capable de lire, comprendre et résoudre des
bugs sous Python.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 2
Bibliographie
José Ouin, Algorithmique & programmation par la pratique : travaux pratiques résolus et
programmation avec les logiciels Scilab & Python, Langages de programmation, Ellipses,
ISBN : 978-2-340-02247-8, 2017
José Ouin, algorithmique pour tous : énigmes, conjectures et simulations d'expériences
aléatoires : exercices résolus et programmation avec les logiciels Scilab et Python, Ellipses,
Langages de programmation, ISBN : 978-2-340-02287-4, 2018
Thomas Petit, Tous les algorithmes : programmation Python : prépa scientifique, 1re et 2e
années, Statistiques, Ellipses, ISBN : 978-2-340-02529-5, 2018
Christophe Dürr - Jill-Jênn Vie, Programmation efficace : les 128 algorithmes qu'il faut avoir
compris et codés en Python au cours de sa vie : préparation aux concours de programmation,
Informatique Etudiant, Ellipses, Références sciences, ISBN : 978-2-340-01005-5, 2016
Python Crash Course – Eric Matthes, https://ehmatthes.github.io/pcc/
Automate the Boring Stuff with Python – Al Sweigart,
https://automatetheboringstuff.com/
Learning Python – Mark Lutz,
https://cfm.ehu.es/ricardo/docs/python/Learning_Python.pdf
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 3
Quelques liens utiles :
Plonger dans python (peut donner des exemples de code à lire) :
http://www.diveintopython.org/
Tutoriel (notions de bases) : http://docs.python.org/tut/tut.html
Documentation de la bibliothèque standart(ressource vitale):
http://docs.python.org/lib/lib.html
Recettes(contient de bonnes surprises) :
http://aspn.activestate.com/ASPN/Python/Cookbook/
Livres (dans l’idéal commencer par çà) : Learning Python (M. Lutz)
Répertoire de packages (plutôt que de coder tout un module soi-
même) : http://python.org/pypi
PEPs (mine d’information) : http://www.python.org/dev/peps/
chaque nouvel idiome du langage fait l’objet préalable d’un draft
Wiki (moyen) : http://wiki.python.org/moin/
Autres sources : mailing lists, blog de GvR, et des autres core
développeurs
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 4
Structures de données et Programmation en Python
Plan
I. Présentation du langage Python
II. Les bases de la programmation en Python
III. La programmation modulaire avec Python
IV. Les collections sous Python
V. Les vecteurs et matrices avec NumPy
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 5
Rappel Algorithmique
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 6
Rappel algorithmique
Notion d’algorithme
Un algorithme c'est une procédure logique pour résoudre un
problème ou accomplir une tâche.
Dans la vie courante, un algorithme peut prendre la forme d’une
recette de cuisine ou bien une résolution d’exercice.
Une recette de cuisine par exemple, est un algorithme, à partir des
ingrédients, elle explique comment parvenir au plat, de même, une
résolution d’exercice explique comment à partir des données, on
obtient d’une solution finale en un certain nombre d’étapes.
Les algorithmes sont utilisés dans de nombreux domaines tels que
les mathématiques, l'informatique, la physique, la biologie, la
finance et bien d'autres.
Ils sont également utilisés dans la conception et le développement
de logiciels, de sites web, d'applications mobiles et d'autres types
de systèmes informatiques.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 7
Rappel algorithmique
Notion d’algorithme
Les algorithmes peuvent être représentés sous forme de
diagrammes de flux, de pseudocode ou de code informatique réel.
Les algorithmes efficaces sont souvent caractérisés par leur
rapidité, leur précision et leur capacité à résoudre des problèmes
de manière générale.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 8
Rappel algorithmique
Notion d’algorithme
Un exemple d'algorithme simple serait de trier une liste d'entiers du
plus petit au plus grand (tri à bulles)
1. Définir une liste d'entiers non triée.
2. Parcourir la liste d'entiers du début à la fin.
3. Comparer chaque paire d'entiers consécutifs dans la liste.
4. Si un entier est plus grand que son suivant, échanger leur position.
5. Répéter les étapes 2 à 4 jusqu'à ce que la liste soit triée.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 9
Rappel algorithmique
Notion d’algorithme
Déroulement du cas concret précédent
Par exemple, si nous avons une liste d'entiers [5, 2, 8, 3, 1],
l'algorithme de tri à bulles effectuera les opérations suivantes :
Première phase : [2, 5, 8, 3, 1] → [2, 5, 3, 8, 1] → [2, 5, 3, 1, 8]
Deuxième phase : [2, 3, 5, 1, 8] → [2, 3, 1, 5, 8]
Troisième phase : [2, 1, 3, 5, 8]
Quatrième phase : [1, 2, 3, 5, 8]
Après quatre phases, la liste est triée et la sortie sera [1, 2, 3, 5, 8].
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 10
I. Présentation du langage Python
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 11
I. Présentation du langage Python
Historique
C’est quoi le langage Python ?
Le langage Python est un langage de programmation orienté objet interprété. Il a été
développé par Guido Von Rossum en 1989 à l’Université d’Amsterdam. Ce langage a
été nommé ainsi en référence à la série télévisée Monthy Python’s Flying Circus.
Python offre un environnement complet de développement comprenant un interpréteur
performant et de nombreux modules.
Un atout indéniable est sa disponibilité sur la grande majorité des plateformes
informatiques courantes : Mac OS X, Unix, Windows ; Linux, Android, IOS….
Python est un langage open source. Libre et gratuit, il est supporté, développé et utilisé
par une large communauté : 300 000 utilisateurs et plus de 500 000 téléchargements par
an.
Plus : (http://leaderswithouttitle.github.io/PythonLWT/History.html)
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 12
I. Présentation du langage Python
Python en quelques lignes
Python est un langage de programmation objet, multi-paradigme et multi-
plateformes. Il favorise la programmation impérative structurée et orientée objet.
Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par
ramasse-miettes et d'un système de gestion d'exceptions ; il est ainsi similaire à
Perl, Ruby, Scheme, Smalltalk et Tcl.
Le langage Python est placé sous une licence libre proche de la licence BSD et
fonctionne sur la plupart des plates-formes informatiques, des supercalculateurs aux
ordinateurs centraux, de Windows à Unix en passant par GNU/Linux, Mac OS, ou
encore Android, iOS, et aussi avec Java ou encore .NET. Il est conçu pour optimiser
la productivité des programmeurs en offrant des outils de haut niveau et une
syntaxe simple à utiliser.
Il est également apprécié par les pédagogues qui y trouvent un langage où la
syntaxe, clairement séparée des mécanismes de bas niveau, permet une initiation
aisée aux concepts de base de la programmation3.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 13
I. Présentation du langage Python
Mode compilé vs. mode interprété
Langages compilés
Le code écrit par le développeur est d’abord compilé (conversion du code source en
langage machine) avant d’être exécuter
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 14
I. Présentation du langage Python
Mode compilé vs. mode interprété
Langages interprétés
Ces langages n’ont pas besoin de compilation. Le code source est lu et
traduite pour être exécuté
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 15
I. Présentation du langage Python
Mode compilé vs. mode interprété
Langages compilés Langages interprétés
C Python
C++ Javascript
Java PHP
Pascal Matlab
… Perl
…
• Langage interprété : + portabilité application ; - lenteur (R, VBA, Python…)
• Langage compilé : + rapidité ; - pas portable
• (solution possible : write once, compile anywhere ; ex. Lazarus)
• Langage pseudo-compilé : + portabilité plate-forme ; - lenteur (?)
• (principe : write once, run anywhere ; ex. Java et le principe JIT)
Python est interprété, il est irrémédiablement lent, mais… on peut lui associer des
librairies intégrant des fonctions compilées qui, elles, sont très rapides.
Cf. « Why Python is Slow », « PythonSpeed – Performance Tips ».
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 16
I. Présentation du langage Python
Mode compilé vs. mode interprété
Un des langages les plus utilisés au monde
Elu Meilleur langage en 2023 (source : IEEE : top 10 des meilleurs langages de
programmation de l’année 2023)
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 17
I. Présentation du langage Python
Python, un langage de programmation interprété
Python est un langage de programmation interprété, c'est-à-dire que les
instructions que vous lui envoyez sont « transcrites » en langage
machine au fur et à mesure de leur lecture. D'autres langages (comme le
C / C++) sont appelés « langages compilés » car, avant de pouvoir les
exécuter, un logiciel spécialisé se charge de transformer le code du
programme en langage machine. On appelle cette étape la « compilation
». À chaque modification du code, il faut rappeler une étape de
compilation.
Les avantages d'un langage interprété sont la simplicité (on ne passe pas
par une étape de compilation avant d'exécuter son programme) et la
portabilité (un langage tel que Python est censé fonctionner aussi bien
sous Windows que sous Linux ou Mac OS, et on ne devrait avoir à
effectuer aucun changement dans le code pour le passer d'un système à
l'autre. Pour cela il faudra installer Python sur le système d'exploitation
que vous utilisez pour que l'ordinateur puisse comprendre votre code.)
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 18
I. Présentation du langage Python
Caractéristiques du langage
Python est portable, non seulement sur les différentes variantes d’Unix, mais aussi
sur les OS propriétaires : Mac OS, BeOS, NeXTStep, MS-DOS et les différentes
variantes de Windows. Un nouveau compilateur, baptisé JPython, est écrit en Java
et génère du bytecode Java.
Python est gratuit, mais on peut l’utiliser sans restriction dans des projets
commerciaux.
Python convient aussi bien à des scripts d’une dizaine de lignes qu’à des projets
complexes de plusieurs dizaines de milliers de lignes.
La syntaxe de Python est très simple et, combinée à des types de données évolués
(listes, dictionnaires...), conduit à des programmes à la fois très compacts et très
lisibles. À fonctionnalités égales, un programme Python (abondamment commenté
et présenté selon les canons standards) est souvent de 3 à 5 fois plus court qu’un
programme C ou C++ (ou même Java) équivalent, ce qui représente en général un
temps de développement de 5 à 10 fois plus court et une facilité de maintenance
largement accrue.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 19
I. Présentation du langage Python
Avec le langage Python, il est possible de faire :
du calcul scientifique (librairie NumPy)
des graphiques (librairie matplotlib)
du traitement du son
du traitement d'image (librairie PIL)
des applications avec interface graphique GUI (librairies Tkinter, PyQt,
wxPython, PyGTK ...)
des jeux vidéo en temps réel (librairie Pygame)
des applications Web (serveur Web Zope ; framework Web Django, Karrigell ;
framework JavaScript Pyjamas)
interfacer des systèmes de gestion de base de données (librairie MySQLdb ...)
des applications réseau (framework Twisted)
communiquer avec des ports série RS232, Bluetooth... (librairie PySerial)
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 20
I. Présentation du langage Python
Quelques recommandations :
Un commentaire commence par le caractère # et s’étend jusqu’à la
fin de la ligne.
Un commentaire sur plusieurs ligne est entre le deux triples
guillemets : """ Commentaires"""
Les instructions Python sont éditées en minuscules.
Les noms de variables peuvent contenir des majuscules mais il faudra
les écrire toujours de la même façon en respectant les minuscules et
majuscules
Un mot clé, ou mot réservé, est un terme du langage qui provoque
une action défini.
Une variable ne peut s'appeler comme un mot clé, ni même
commencer par ce mot clé.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 21
I. Présentation du langage Python
Caractéristiques du langage
La bibliothèque standard de Python, et les paquetages contribués, donnent accès à
une grande variété de services : chaînes de caractères et expressions régulières,
services UNIX standards (fichiers, pipes, signaux, sockets, threads...), protocoles
Internet (Web, News, FTP, CGI, HTML...), persistance et bases de données,
interfaces graphiques.
Python est un langage qui continue à évoluer, soutenu par une communauté
d’utilisateurs enthousiastes et responsables, dont la plupart sont des supporters du
logiciel libre. Parallèlement à l’interpréteur principal, écrit en C et maintenu par le
créateur du langage, un deuxième interpréteur, écrit en Java, est en cours de
développement.
Enfin, Python est un langage de choix pour traiter le XML.
Distribution de Python et bibliographie
http://www.python.org
http://www.afpy.org/Members/bcordeau/Python3v1-1.pdf/download
http://inforef.be/swi/python.htm
http://infos.pythomium.net/download/cours_python.zip
http://www.editions-eyrolles.com
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 22
I. Présentation du langage Python
and Et logique (opérateur)
as Modifier l'alias (instruction)
assert Tester une expression (instruction)
break Sortir d'une boucle (instruction)
class Débuter la définition d'une classe (instruction)
continue Retourner au début d'une boucle (instruction)
def Débuter la définition d'une fonction (instruction)
del Supprimer la référence (variable) et le lien à un objet (instruction)
elif Tester sinon l'expression (instruction)
else Exécuter sinon (instruction)
except Exécuter si une exception est levée (instruction)
False Faux (constante)
finally Exécuter toujours (instruction)
for Exécuter en boucle pour toute les valeurs (instruction)
from Importer depuis (instrution)
global Modifier le type de portée d'une variable dans un bloc de script la variable (instruction)
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 23
if Tester l'expression (instruction)
I. Présentation du langage Python
import Importer le module (instruction)
in Etre dans (opérateur) / appartenant à
is Etre le même objet (opérateur)
lambda Définir une fonction simple (instruction)
None Vide (constante)
nonlocal Modifier le type de portée d'une variable dans un bloc de script la variable (instruction)
not Non logique (opérateur)
or Ou logique (opérateur)
pass Passer à la suite (instruction)
raise Relever une erreur (instruction)
return Sortir de la fonction (instruction)
True Vrai (constante)
try Essayer (instruction)
while Faire une boucle tant que l'expression est vrai (instruction)
with Encapsule un bloc pour mieux appréhender son initialisation et sa finalisation
yield
13/11/2025 Régénérer le résultat (instruction)
Dr Gouayon KOALA UTS MPI/L2_S3 24
I. Présentation du langage Python
Lien Algorithme – Programmation
Algorithme Programmation
• Un algorithme est une suite finie d'instructions, • Transcription d’un algorithme avec
écrites en langage naturel, qui peuvent être une syntaxe prédéfinie
exécutées les unes à la suite des autres pour
Python
résoudre un problème.
• Même principes fondamentaux que les
• 3 étapes principales :
• autres langages objets (Delphi, Java,C# ,
1. saisie (réception) des données etc.)
2. Traitements • Python s’enrichit de bibliothèques de
3. restitution (application) des calcul spécialisées (mathématique, bio
informatique, etc.)
résultats
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 25
I. Présentation du langage Python
Etapes de la conception d’un programme (Génie Logiciel)
1. Déterminer les besoins et fixer les objectifs : que doit faire le logiciel, dans quel
cadre va-t-il servir, quels seront les utilisateurs types ? On rédige un cahier des
charges avec le commanditaire du logiciel (Remarque : commanditaire =
m a î t re d’ouvr age ; réalisateur = m a î t re d’œuvre )
2. Conception et spécifications : quels sont les fonctionnalités du logiciel, avec
quelle interface ?
3. Programmation : modélisation et codage
4. Tests : obtient-on les résultats attendus, les calculs sont corrects, y a-t-il
plantage et dans quelles circonstances ? (tests unitaires, tests
d’intégration, etc.)
5. Déploiement : installer le chez le client (vérification des configurations,
installation de l’exécutable et des fichiers annexes, etc.)
6. Maintenance : corrective, traquer les bugs et les corriger (patches) ;
évolutive (ajouter des fonctionnalités nouvelles au logiciel : soit sur
l’ergonomie, soit en ajoutant de nouvelles procédures)
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 26
I. Présentation du langage Python
Mode de fonctionnement de la programmation en Python
Python est un langage de programmation interprété. C’est un « vrai » langage c.-à-d. types de données,
branchements conditionnels, boucles, organisation du code en procédures et fonctions, objets et
classes, découpage en modules.
Très bien structuré, facile à appréhender, c’est un langage privilégié pour l’enseignement
Mode d’exécution : transmettre à l’interpréteur Python le fichier script « .py »
L’interpréteur est facilement reconnu. C’est lui qui contient le triple chevron >>> qui est
l’invite de Python (prompt en anglais) et qui signifie que Python attend une commande.
L’utilisation de l’interpréteur ressemble à l’utilisation d’une calculatrice :
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 27
I. Présentation du langage Python
Mode de fonctionnement de la programmation en Python
Python est associé à de très nombreuses librairies
très performantes, notamment des librairies de
calcul scientifique (Numpy, SciPy, Pandas, etc.).
De fait, il est de plus en plus populaire, y compris
auprès des data scientists.
Il est plus généraliste que R qui est vraiment
tourné vers les statistiques.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 28
I. Présentation du langage Python
Python propose les outils standards de la programmation)
Données typées. Python propose les types usuels de la programmation : entier, réels, booléens, chaîne de
caractères.
Structures avancées de données. Gestion des collections de valeurs (énumérations, listes) et des objets
structurés (dictionnaires, classes)
Séquences d’instructions, c’est la basse même de la programmation, pouvoir écrire et exécuter une série de
commandes sans avoir à intervenir entre les instructions.
Structures algorithmiques : les branchements conditionnels et les boucles.
Les outils de la programmation structurée : pouvoir regrouper du code dans des procédures et des fonctions.
Cela permet de mieux organiser les applications.
Organisation du code en modules. Fichiers « .py » que l’on peut appeler dans d’autres programmes avec la
commande import
Possibilité de distribution des modules : soit directement les fichiers « .py », soit sous forme d’extensions
prêtes à l’emploi.
Python est « case sensitive », il différencie les termes écrits en minuscule et majuscule. Des conventions de
nommage existent1. Mais le plus important est d’être raccord avec l’environnement de travail dans lequel vous
opérez.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 29
I. Présentation du langage Python
Mode d’utilisation du langage python
Python est un langage de programmation interprété, ce qui
signifie qu'il peut être utilisé de différentes manières en
fonction du contexte d'utilisation. Voici quelques-uns des
modes d'utilisation les plus courants de Python :
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 30
I. Présentation du langage Python
Mode d’utilisation du langage python
Mode interactif
Il s'agit d'un mode dans lequel vous pouvez entrer des instructions Python une par
une et les exécuter immédiatement. Pour lancer le mode interactif, vous pouvez
simplement ouvrir une console Python en tapant "python" dans une fenêtre de
terminal ou de commande.
Lancer la console Python et introduire les commandes de manière interactive.
Ce n’est pas adapté pour nous (programmation = enchaînement automatique
d’instructions)
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 31
I. Présentation du langage Python
Mode d’utilisation du langage python
Scripts
Vous pouvez écrire des scripts Python, qui sont des fichiers contenant une
série d'instructions Python à exécuter. Vous pouvez exécuter ces scripts en
les appelant à partir de la ligne de commande, comme ceci : python
mon_script.py.
Applications de bureau
Python est souvent utilisé pour créer des applications de bureau
graphiques à l'aide de bibliothèques comme Tkinter, PyQt ou
wxPython.
Applications Web
Python est largement utilisé pour créer des applications Web à l'aide de
frameworks comme Django, Flask ou Pyramid.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 32
I. Présentation du langage Python
Mode d’utilisation du langage python
Traitement de données
Python est également utilisé dans le domaine du traitement de
données pour effectuer des analyses de données, du traitement de
fichiers CSV ou JSON, de la visualisation de données, etc. Les
bibliothèques populaires pour le traitement de données en Python
incluent Pandas, NumPy et Matplotlib, seaborn...
Intelligence artificielle et apprentissage automatique
Python est également largement utilisé dans les domaines de
l'intelligence artificielle et de l'apprentissage automatique pour créer
des modèles d'apprentissage automatique à l'aide de bibliothèques
comme TensorFlow, Keras, PyTorch, etc.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 33
I. Présentation du langage Python
Mode d’utilisation du langage python
Avantages de Python
Python est un langage open source, ce qui signifie qu'il est soutenu
par une grande communauté de développeurs qui contribuent
régulièrement des bibliothèques et des frameworks utiles. Cela
signifie que les développeurs peuvent utiliser des bibliothèques
existantes pour accélérer le processus de développement et
résoudre des problèmes plus rapidement.
En plus d'avoir une grande communauté, python est un langage
lisible et simple, polyvalent, multiplateforme, excellent pour le
traitement de données.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 34
I. Présentation du langage Python
Présentation des différents IDEs Python
Visual Studio Code
C'est un éditeur de code gratuit et open-source de Microsoft qui
dispose d'un grand nombre d'extensions pour Python. Il est facile à
utiliser et offre une prise en charge de la débogage, ainsi que
l'intégration avec Git. Visual Studio Code :
https://code.visualstudio.com/docs/languages/python
PyCharm
PyCharm : C'est l'IDE Python le plus populaire. Il offre une prise en
charge complète de Python, ainsi qu'un support pour les frameworks
les plus populaires comme Django et Flask. Il est disponible en deux
versions : Community (gratuite) et Professional (payante). Lien du
site officiel :
https://www.jetbrains.com/pycharm/
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 35
I. Présentation du langage Python
Présentation des différents IDEs Python
Sublime text
C'est un éditeur de texte populaire qui peut être utilisé pour Python
en installant des packages supplémentaires. Il est facile à utiliser et
rapide, mais ne dispose pas de toutes les fonctionnalités d'un IDE
complet. Lien du site officiel :
https://www.sublimetext.com/
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 36
I. Présentation du langage Python
Présentation des différents IDEs Python
Notepad++
Ecrire le code dans un éditeur de code (notepad++) puis l’enregistrer dans un fichier « .py »
Double cliquer le fichier « .py »
pour lancer automatiquement le
programme dans la console.
Saisir les données
d’entrée et visualiser
le résultat
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 37
I. Présentation du langage Python
Présentation des différents IDEs Python
IDLE
C'est l'IDE par défaut fourni avec Python. Il est simple à utiliser et
peut être utilisé pour écrire et exécuter des scripts Python.
Cependant, il n'a pas autant de fonctionnalités que les autres IDEs.
Lien du site officiel :
https://docs.python.org/3/library/idle.html
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 38
I. Présentation du langage Python
Présentation des différents IDEs Python
IDLE
Editeur de code
Shell : fenêtre d’exécution du programme
Menu : RUN / RUN MODULE ou raccourci
clavier F5
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 39
I. Présentation du langage Python
Présentation des différents IDEs Python
Anaconda
Anaconda est une distribution Python populaire qui est largement
utilisée dans le domaine de la science des données, de
l'apprentissage automatique et de l'analyse de données. Voici une
présentation d'Anaconda Python en français :
Installation : Anaconda est disponible en téléchargement gratuit sur
le site officiel d'Anaconda. Il propose une version complète de
Python, ainsi qu'un gestionnaire de packages (conda) et un
environnement de développement intégré appelé Anaconda
Navigator.
https://www.anaconda.com/
Je vous recommande d'installer Anaconda pour l'apprentissage de la
programmation en Python. En effet à partir de celui-ci vous pouvez
lancer Jupyter Notebook, Spyder et bien d'autres outils de codage.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 40
I. Présentation du langage Python
Présentation des différents IDEs Python
Jupyter Notebook
C'est une autre option populaire pour travailler avec Python. Bien
qu'il ne soit pas strictement un IDE, Jupyter Notebook est un
environnement interactif de développement pour Python (et
d'autres langages de programmation) qui permet de créer et
d'exécuter des notebooks contenant du code, des visualisations et
du texte. Le principal avantage de Jupyter Notebook est sa facilité
d'utilisation pour l'analyse de données, la science des données et
l'apprentissage automatique. Il est également très populaire dans le
domaine de l'éducation et de la recherche en informatique. Jupyter
Notebook est gratuit et open-source, et peut être exécuté
localement sur votre ordinateur ou en ligne via des services cloud
tels que Google Colaboratory ou Microsoft Azure Notebooks. Lien du
site officiel : https://jupyter.org/install
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 41
I. Présentation du langage Python
Présentation des différents IDEs Python
Spyder
C'est un IDE Python qui est axé sur l'analyse de données
scientifiques. Il intègre des outils de visualisation de données et de
gestion de l'espace de travail. Il est également gratuit et open-
source. Lien du site officiel :
https://www.spyder-ide.org/
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 42
I. Présentation du langage Python
Présentation des différents IDEs Python
Spyder
Pour lancer le programme
Informations, dont l’aide
CTRL+I sur les mots clés
Editeur de code Console Python avec les
Sorties + interaction avec l’utilisateur
13/11/2025 43
Dr Gouayon KOALA UTS MPI/L2_S3
II. Les bases de la programmation en Python
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 44
II. Les bases de la programmation en Python
Types de données, variables, opérations
Premières opérations
Affectation – Typage automatique
a = 1.2
a est une variable, en interne elle a été automatiquement typée en flottant « float »
parce qu’il y a un point décimal. a est l’identifiant de la variable (attention à ne pas
utiliser le mots réservés comme identifiant), = est l’opérateur d’affectation
Calcul
d = a + 3
d sera un réel contenant la valeur 4.2 -
Forcer le typage d’une variable (sert aussi pour le transtypage)
b = float(1)
Même sans point décimal, b sera considéré comme float (b = 1, il aurait été int dans
ce cas).
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 45
II. Les bases de la programmation en Python
Types de données, variables, opérations
Premières opérations
Connaître le type d’un objet
type(nom_de_variable)
Affiche le type interne d’une variable
(ex. type(a) <class ‘float’>)
Supprimer un objet de la mémoire
del nom_de_variable
où nom_de_variable représente le nom de l’objet à
supprimer.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 46
II. Les bases de la programmation en Python
Types élémentaires de Python
• Numérique qui peut être int (entier) ou float (double). Les opérateurs applicables
sont : + , - , * , / (division réelle), ** (puissance) , % (modulo) , // (division entière)
• bool correspond au type booléen, il prend deux valeurs possibles True et False
(respecter la casse). Les opérateurs sont not (négation), and (ET logique), or (OU
logique)
ex. not(True) False ; True and False False ; etc.
• str désigner les chaînes de caractères. Une constante chaîne de caractère doit être
délimitée par des guillemets (ou des quotes)
ex. a « tano » affecte la valeur « tano » à l’objet a qui devient donc une variable de type chaîne
de caractères. Une chaîne de caractère se comporte comme un vecteur :
len() pour connaître sa longueur, a[0] « t », a[1:3] « ano », a[2:] « no », etc.
• Remarque : pour connaître la classe d’un objet i.e. le type associé à un objet, on
utilise la fonction type(nom_objet) ex. type(1.2) renvoie la valeur ‘float’
Instanciation et affectation
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 47
II. Les bases de la programmation en Python
Instanciation et affectation
Affectation simple #typage automatique
a = 1.0
La seconde évite les ambiguïtés. #typage explicite
a = float(1)
#même valeur pour plusieurs variables
a = b = 2.5
Affectations multiples
#affectations parallèles
a, b = 2.5, 3.2
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 48
II. Les bases de la programmation en Python
Opérations, expressions, enchaînements
a = 1
La plus utilisée
b = 5
1 instruction par ligne
d = a + b
a = 1;b = 5 ;d = a + b;
Autres possibilités
Moins recommandées a = 1;
b = 5;
d = a + b;
Une opération particulière
Une variable ne se comporte a = 2
pas de la même manière de a = a + 1
part et d’autre du symbole
d’affectation
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 49
II. Les bases de la programmation en Python
Transtypage
Principe : Utilisation du mot-clé désignant letype
> nouveau_type (objet)
Conversion en numérique
a = " 12 " # a est de type chaîne caractère
b = float(a) # b est de type float
N.B. Si la conversion n’est pas possible ex. float(« toto »), Python renvoie une
erreur
Conversion en logique
a = bool(" TRUE ") # a est de type bool est contient la valeur True
a = bool(1) # renvoie True également
Conversion en chaîne de caractères
a = str(15) # a est de type chaîne et contient " 15 "
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 50
II. Les bases de la programmation en Python
Opérateurs de comparaison
Lesopérateurs de comparaison servent à comparer des valeurs de même
type et renvoient un résultat de type booléen.
Sous Python, ces opérateurs sont <, <=, >, >=, != , = =
Ex. a = (12 = = 13) # a est de type bool, il a la valeurFalse
N.B: On utilisera principalement ces opérateurs dansles branchements
conditionnels.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 51
II. Les bases de la programmation en Python
ENTRÉES ET SORTIES
(Saisie et affichage à la console)
Saisie a = input(" Saisir votre valeur ")
a = float(a)
input() permet d’effectuer une saisie au clavier
Il est possible d’afficher un message d’invite
La fonction renvoie toujours une chaîne, il faut convertir
#Affichage explicite
Affichage print(a)
Un affichage multiple est possible
Ex. print(a,b) #affiche a et b
L’affichage direct du contenu d’un tableau (liste) est possible également.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 52
II. Les bases de la programmation en Python
ENTRÉES ET SORTIES
(Saisie et affichage à la console)
Pour gérer correctement
l’affichage descaractères
accentués
print(" prix ttc: ", pttc)
Fonctionne également et
nous privilégierons cela
Concaténation de 2 chaînes de caractères
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 53
II. Les bases de la programmation en Python
ENTRÉES ET SORTIES
(Saisie et affichage à la console)
Le format des variables
Problème : Comment insérer des nombres dans des chaînes de caractères?
Solution 1 : La fonction format()
La fonction format() d’insérer des nombres dans des chaînes de caractères.
Exemple :
quantite = 3
numero_element = 567
prix = 49
# Je veux 3 pièces de 567 éléments pour 49.00 cedis.
ma_commande = "Je veux {} pièces de {} éléments pour {:.2f} cedis."
print(ma_commande.format(quantite, numero_element, prix))
ma_commande = "Je veux {0} pièces de {1} éléments pour {2:.2f} cedis."
print(ma_commande.format(quantite, numero_element, prix))
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 54
II. Les bases de la programmation en Python
ENTRÉES ET SORTIES
(Saisie et affichage à la console)
Le format des variables
Problème : Comment insérer des nombres dans des chaînes de caractères?
Solution 2: Utiliser une virgule pour séparer les nombres de chaînes de caractères
Exemple :
print("Je veux ",quantite,"pièces de ",numero_element,"éléments pour ",prix,"cedis.")
Solution 3: Utilisation de la lettre « f » au début
Exemple :
print(f"Je veux {quantite} pièces de {numero_element} éléments pour {prix} cedis.")
Solution 4: Convertir les nombres avant d’afficher ou de concaténer avec les chaînes
de caractères.
Exemple :
print("Je veux "+str(quantite)+" pièces de "+str(numero_element)+" éléments pour "+str(prix) + " cedis.")
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 55
II. Les bases de la programmation en Python
ENTRÉES ET SORTIES
(Saisie et affichage à la console)
Echapper des caractères
Pour insérer des caractères non autorisés dans une chaîne, utilisez un caractère
d'échappement.
Un caractère d'échappement est une barre oblique inverse "\"suivie du caractère que
vous souhaitez insérer.
« \ » : Barre oblique inverse ou backslash ou antislash
Exemple :
txt = "C\'est parfait ! " # Echapper l'apostrophe
print(txt) # => C'est parfait !
txt = "C\'est \n parfait ! " # Retour à la ligne
print(txt)
txt = "C\'est \r parfait ! " # Retour chariot
print(txt)
txt = "C\'est \t parfait ! " # Pour faire une tabulation (04 espaces)
print(txt)
txt = "C\'est \b parfait ! " # Efface un caractère en arrière
print(txt)
txt = "\110\145\154\154\157 ! " # Affiche des caractères à partir de l'octal
print(txt) # Hello
txt = "\x48\x65\x6c\x6c\x6f ! " # Affiche des caractères à partir de l'hexadécimal
print(txt) # Hello
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 56
II. Les bases de la programmation en Python
Structures de contrôle
Instruction « if »
Condition est très souventune opération decomparaison
if condition:
bloc d’instructions
else:
bloc d’instructions
(1) Attention au : qui estprimordial
(2) C’est l’indentation (le décalage par rapport à la marge
gauche) qui délimite le blocd’instructions
(3) La partie else est facultative
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 57
II. Les bases de la programmation en Python
Structures de contrôle
Instruction « if » : exemple
Noter l’imbrication
des blocs.
Lecode appartenant
au même bloc doit
être impérativement
aligné sinon erreur.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 58
II. Les bases de la programmation en Python
Structures de contrôle
Succession de « if » avec « elif »
elif n’est déclenché que si
la(les) condition(s)
précédente(s) a (ont)
échoué.
elif est situé au même
niveau que if et else
On peut mettre autant
de elif que l’on veut
NB: Il n’y a pas de switch() ou de
case…of en Python
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 59
II. Les bases de la programmation en Python
Structures de contrôle
La boucle « for »
génération d’une séquence de valeurs
Elle ne s’applique que sur une collection
Principe de la boucle de valeurs. Ex. tuples, listes,… (à voir dans
for
la partie collection).
On peut définir des boucles indicées en générant
une collection de valeurs avecrange( )
Suite arithmétique
simple (séquencede (1)range(4) 0 1 2 3
valeurs entières) (2)range(1,4) 1 2 3
(3)range(0,5,2) 0 2 4
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 60
II. Les bases de la programmation en Python
Structures de contrôle
La boucle « for »
Séquence est une collection devaleurs.
Peut être générée avecrange()
for indice in séquence:
bloc d’instructions
Remarque :
•Attention à l’indentation toujours
•On peut « casser » la boucle avec break
•On peut passer directement à l’itération suivante avec continue
•Des boucles imbriquées sont possibles
•Le bloc d’instructions peut contenir des conditions
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 61
II. Les bases de la programmation en Python
Structures de contrôle
La boucle « for » : exemple
Somme totale des valeurs comprises entre 1 et n (inclus)
et somme des valeurs paires dans le mêmeintervalle
Il faut mettre n+1 dans range() pour
que n soit inclus dans la somme
Observez attentivement les
indentations.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 62
II. Les bases de la programmation en Python
Structures de contrôle
La boucle « while »
Opération de comparaison
Attention à la boucle infinie!
while condition:
bloc d’instructions
Remarque :
•Attention à l’indentation toujours
•On peut « casser » la boucle avecbreak
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 63
II. Les bases de la programmation en Python
La boucle « while » : exemple
N'oubliez pas d’initialiser i
Observez attentivement
les indentations.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 64
II. Les bases de la programmation en Python
Exercices d’application
Exercice B : if, elif, else
sexe=str(input("entrer le sexe (M/F) : "))
age=int(input("age : "))
a=(sexe=="M" and age>20)
b=(sexe=="F" and (age>=18 and age<=35))
if(a or b):
print("Imposable")
else:
print("Non imposable")
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 65
II. Les bases de la programmation en Python
Exercices d’application
Exercice A : Pyton Vs. Algorithme (variable, debut, fin, etc,)
N=int(input("Entrer un nombre N : "))
I=N
S=0
While I!=0:
Q=I%10
S=S*10+Q
I=I//10
print(S)
""" affiche l'inverse du nombre N """
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 66
II. Les bases de la programmation en Python
Exercices d’application
Exercice A : while Vs. for (peut être utiliser lorsque
le nombre de répétitions n’est pas connu d’avance)
N=int(input("Entrer un nombre N : "))
I=N
S=0
While I!=0:
Q=I%10
S=S*10+Q
I=I//10
print(S)
""" affiche l'inverse du nombre N """
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 67
II. Les bases de la programmation en Python
Exercices d’application
Exercice A : while Vs. for (peut être utiliser lorsque le nombre de répétitions n’est pas connu d’avance)
s = 0
for i in range(1,11):
if i % 2 == 1 :
print("ajoute",i)
s += i # s=s+i
print("résultat :",s)
s = 0
i=1
while i < 11:
if i % 2 == 1 :
print("ajoute",i)
s += i # s=s+i
i=i+1
print("résultat :",s)
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 68
III. La programmation modulaire
sous Python
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 69
III. La programmation modulaire sous en Python
PROCÉDURES ET FONCTIONS
Découpage des programmes
Généralités sur les fonctions et les modules sous Python
1. Meilleure organisation du programme
(regrouper les tâches par blocs : lisibilité
maintenance)
Pourquoi 2. Eviter la redondance (pas de copier/coller
créer des
maintenance, meilleure réutilisation du
fonctions ?
code)
3. Possibilité de partager les fonctions (via des
modules)
4. Le programme principal doit être le plus
simple possible
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 70
III. La programmation modulaire sous en Python
PROCÉDURES ET FONCTIONS
Découpage des programmes
Généralités sur les fonctions et les modules sous
Python
1. Module = fichier «.py»
2. On peut regrouper dans un module les fonctions
traitant des problèmes de même nature ou
Qu’est-ce manipulant le même type d’objet
qu’un module 3. Pour charger les fonctions d’un module dans un
sous Python ? autre module / programme principal, on utilise la
commande import nom_du_module
4. Les fonctions importées sont chargées en
mémoire. Si collision de noms, les plus récentes
écrasent les anciennes.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 71
III. La programmation modulaire sous en Python
PROCÉDURES ET FONCTIONS
Découpage des programmes
Définition des fonctions
• Fonction Bloc d’instructions
• Prend (éventuellement) des paramètres en entrée (nontypés)
Fonction •Renvoie une valeur en sortie (ou plusieurs valeurs, ou pas de valeurs :
procédure)
• def pour dire que l’on définitune fonction
• Le nom de la fonction est « petit »
def petit (a,b):
if (a <b): • Les paramètres ne sont pas typés
Un exemple d =a • Noter le rôle du :
else: • Attention àl’indentation
d =0 • return renvoie lavaleur
return d
• return provoque immédiatement la sortie
de la fonction
Procédure = Fonction sans return
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 72
III. La programmation modulaire sous en Python
PROCÉDURES ET FONCTIONS
Découpage des programmes
Appel des fonctions
Passage de Passer les paramètres selon les
paramètres print(petit(10, 12)) positions attendues
par position
La fonction renvoie10
Passage par print(petit(a=10,b=12)) Aucune confusion possible 10
nom. Le mode de
passage que je
préconise, d’autant
plus que les Aucune confusion possible 10
paramètres ne
print(petit(b=12, a=10))
sont pas typés.
Sans instructions spécifiques, le
En revanche… print(petit(12, 10)) passage par position prévaut
La fonction renvoie 0
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 73
III. La programmation modulaire sous en Python
PROCÉDURES ET FONCTIONS
Découpage des programmes
Exemple de programmes
Définition de lafonction
Programme principal
Appel de la fonction dans leprogramme principal (on
peut faire l’appel d’une fonction dans une autre
fonction)
2 exécutions du programme
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 74
III. La programmation modulaire sous en Python
Portées des variables, imbrications des fonctions …
Valeur par défaut
•Affecter des valeurs aux paramètres dès la définition de la fonction
•Sil’utilisateur omet le paramètre lors de l’appel, cette valeur estutilisée
Paramètres •Sil’utilisateur spécifie une valeur, c’est bien cette dernière qui estutilisée
par défaut •Lesparamètres avec valeur par défaut doivent être regroupées en
dernière position dans la liste desparamètres
def ecart(a,b,epsilon =0.1) :
Exem ple d = math.fabs(a - b)
if (d <epsilon):
d =0
return d
ecart (a=12.2, b=11.9, epsilon = 1) # renvoie 0
ecart (a=12.2, b=11.9) # renvoie 0.3
Lavaleur utilisée est epsilon = 0.1 dans ce cas
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 75
III. La programmation modulaire sous en Python
Portées des variables, imbrications des fonctions …
Passage de paramètres Lesparamètres sont toujours passés par
#écriture de la fonction
def modifier_non_mutable(a,b): référence (référence à l’objet), mais ils sont
a = 2 * a modifiables selon qu’ils sont mutables
b = 3 * b
print(a,b) (dictionnaire*, liste*, etc.) ou nonmutables
(types simples, tuples*, etc.).
#appel
x = 10
y = 15 20 45
modifier_non_mutable(x,y)
print(x,y) 10 15
#écriture de la fonction
def modifier_mutable(a,b): C’est ce qui est pointé par
a.append(8) [10, 8] [6]
b[0] = 6
la référence qui est
print(a,b) modifiable, pas la
#appel pour les listes référence elle-même.
lx = [10] Ex. b = [6] ne sera pas
ly = [15] répercuté à l’extérieur de
modifier_mutable(lx,ly)
[10, 8] [6]
print(lx,ly) la fonction.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 76
III. La programmation modulaire sous en Python
Portées des variables, imbrications des fonctions …
Fonction renvoyant plusieurs valeurs (1/2)
Renvoyer return peut envoyer plusieurs valeurs simultanément.
plusieurs valeurs
La récupération passe par une affectationmultiple.
avec return
#écriture de la fonction
def extreme(a,b): Remarque : Que se passe-t-il si nous ne mettons
if (a < b): qu’une variable dans la partie gauche de
return a,b
else:
l’affectation ?
return b,a
#ou autre appel
v = extreme(x,y)
#appel
print(v) v = (10, 15)
x = 10
#quel type pour v ?
y = 15
print(type(v))
vmin,vmax = extreme(x,y)
print(vmin,vmax)
<class ‘tuple’>
v est un « tuple », une collection
vmin =10 et vmax=15 de valeurs, à voir plus tard.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 77
III. La programmation modulaire sous en Python
Portées des variables, imbrications des fonctions …
Fonction renvoyant plusieurs valeurs (2/2)
Utilisation des Nous pouvons aussi passer par une structure intermédiaire telle que la liste
listes et des ou le dictionnaire d’objets. Lesobjets peuvent être de type différent, au
dictionnaires final l’outil est très souple .
#écriture de la fonction #écriture de la fonction
def extreme_liste(a,b): def extreme_dico(a,b):
if (a < b): if (a < b):
return [a,b] return {'mini' : a,'maxi' : b}
else: else:
return [b,a] return {'mini' : b,'maxi' : a}
#appel #appel
x = 10 x = 10
y = 15 y = 15
res = extreme_liste(x,y) res = extreme_dico(x,y)
print(res[0]) print(res['mini'])
Les deux fonctions renvoient deux objets différents
Notez l’accès à la valeur minimale selon le type del’objet
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 78
III. La programmation modulaire sous en Python
Portées des variables, imbrications des fonctions …
Visibilité (portée) des variables
Une variable définie localement dansune fonction est uniquement visible
Variables
danscettefonction.
locales et
Lesvariables définies (dans la mémoire globale) en dehors de la fonction ne
globales
sont pas accessibles dans la fonction
Ellesne le sont uniquement que si on utilise un mot clé spécifique
#fonction #fonction #fonction
def modif_1(v): def modif_2(v): def modif_3(v):
x = v x = x + v global x
x = x + v
#appel #appel #appel
x = 10 x = 10 x = 10
modif_1(99) modif_2(99) modif_3(99)
print(x) 10 print(x) print(x) 109
x est une variable locale, x n’est pas assignée ici, On va utiliser la variable
pas de répercussion l’instruction provoque une globale x. L’instruction
ERREUR suivante équivaut à
x = 10 + 99
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 79
III. La programmation modulaire sous en Python
Portées des variables, imbrications des fonctions …
Imbrication des fonctions
Fonctions
Il est possible de définir une fonctiondans une autre fonction.
locales et
globales Dans ce cas, elle est locale à la fonction, elle n’est pas visible à l’extérieur.
#écriture de la fonction
def externe(a):
#fonction imbriquée La fonction interne() est
def interne(b): imbriquée dans externe,
return 2.0* b elle n’est pas exploitable
dans le programme principal
#on est dans externe ici ou dans les autres fonctions
return 3.0 * interne(a)
#appel
x = 10
print(externe(x)) renvoie 60
print(interne(x)) provoque une erreur
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 80
III. La programmation modulaire sous en Python
Les modules Création et utilisation des modules
Principe des Modules -Les modules standards de Python
•Un module est un fichier « .py » contenant un ensemble de
variables, fonctions et classes que l’on peut importer et utiliser
dans le programme principal (ou dans d’autresmodules).
Modules
• Le mot clé import permet d’importer unmodule
•C’est un pas supplémentaire vers la modularité : un module
maximise la réutilisation et facilite le partage ducode
• Des modules standards prêts à l’emploi sont livrés avec la
Modules
standards distribution Python. Ex. random, math, os, hashlib,etc.
• Ils sont visibles dans le répertoire « Lib » dePython
https://docs.python.org/3/library/
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 81
III. La programmation modulaire sous en Python
Les modules
Création et utilisation des modules
Exemple d’utilisation de modules standards
# -*- coding: utf -*-
#importer les modules Si on a plusieurs modules à importer, on
#math et random les liste en les séparant par « , »
import math, random
#génerer un nom réel
#compris entre 0 et 1
random.seed(None)
value = random.random()
#calculer le carré de Préfixer la fonction
#son logarithme à utiliser par le
logv = math.log(value)
nom du module
abslog = math.pow(logv,2.0)
#affichage
print(abslog)
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 82
III. La programmation modulaire sous en Python
Les modules Création et utilisation des modules
Autres utilisations possibles
#définition d'alias
import math as m, random as r L’alias permet d’utiliser des noms
plus courts dans le programme.
#utilisation de l'alias
r.seed(None)
value = r.random()
logv = m.log(value)
abslog = m.pow(logv,2.0)
#importer le contenu Cette écriture permet de désigner
#des modules nommément les fonctions à importer.
from math import log, pow Elle nous épargne le préfixe lors de
from random import seed, random l’appel des fonctions. Mais est-ce
vraiment une bonne idée ?
#utilisation directe
seed(None) N.B.: Avec « * », nous les importons toutes
value = random() (ex. from math import *). Là non plus
logv = log(value)
pas besoin de préfixe par la suite.
abslog = pow(logv,2.0)
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 83
III. La programmation modulaire sous en Python
Les modules Création et utilisation des modules
Création d’un module personnalisé
Il suffit de créer un fichier nom_module.py, et
d’y implémenter les fonctions à partager.
dir() et help() permettent d’obtenir des informations sur le
module (liste du contenu)
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 84
III. La programmation modulaire sous en Python
Les modules Création et utilisation des modules
Importation d’un module personnalisé
Python cherche automatiquement le module dans le
« search path » c.-à-d.
• le dossier courant
•les dossiers listés dans la variable d’environnement
PYTHONPATH(configurable sous Windows)
•les dossiers automatiquement spécifiés à
l’installation. On peut obtenir la liste avec la
commande sys.path (il faut importer le module sysau
préalable).
Pour connaître et modifier le répertoire courant, utiliser les
fonctions du module osc.-à-d.
import os
os.getcwd() # affiche le répertoire de travail actuel
os.chdir(chemin) # permet de le modifier
Ex. os.chdir("c:/temp/exo") #noter l’écriture du chemin
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 85
III. La programmation modulaire sous en Python
Les modules Création et utilisation des modules
Documentation
Documentez vos modules, vous faciliterez
le travail des programmeurs qui les utilisent
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 86
IV. Les collections sous Python
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 87
IV. Les collections sous Python
Les tuples
Tableau statique en lecture seule d’objets hétérogènes
Création des tuples et accès aux données
#définition d'un tuple Les ( ) sont importantes pour indiquer qu’il
t1 = (2,6,8,10,15,26) s’agit d’un tuple, « , » sépare leséléments.
print(t1)
#taille du tuple (2,6,8,10,15,26)
print(len(t1)) 6 éléments
#accès indicé
a = t1[0] 1er élément, les indices vont de 0 àlen(t1)-1
print(a) Remarque : a n’est pas un tuple
#modification ?
t1[2] = 3 ERREUR
#plage d'indices Attention : on récupère à partir du n°2 (inclus) aun°5
b = t1[2:5] (non-inclus) c.-à-d. les indices 2, 3, 4
print(b) Résultat : b est un tuple avec(8,10,15)
#autre plage
c = t1[:4] Les 4 premiers éléments c.-à-d. les indices 0, 1, 2, 3 : nous
print(c) obtenons le tuple (2, 6, 8, 10).
#indiçage négatif
d = t1[-1] Le 1er élément à partir de la fin :26
print(d)
#indiçage négatif
e = t1[-3:] Les 3 derniers éléments : (10,15,26)
print(e) 88
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3
IV. Les collections sous Python
Les tuples Tableau statique en lecture seule d’objets hétérogènes
Création des tuples et accès aux données
#concaténation
t2 = (7, 9,31)
t3 = t1 + t2 (2,6,8,10,15,26,7,9,31)
print(t3)
#réplication
(7,9,31,7,9,31)
t4 = 2 * t2
print(t4)
#tuples d'objets hétérogènes Cane pose absolument aucun
v1 = (3,6,"toto",True,34.1) problème.
print(v1)
#tuple de tuples
x = ((2,3,5),(6,7,9),(1,8)) Sorte de tableau à 2 dimensions
print(x)
x[0] (2,3,5) Organisation de
#accès indicé x[1] (6,7,9) la structure
print(x[2][1]) 8 x[2] (1,8)
#accès aux tailles
print(len(x)) 3 3 éléments sur la 1ère dimension
print(len(x[2])) 2 2 éléments dans le tuple référencé par x[2]
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 89
IV. Les collections sous Python
Les tuples
Tableau statique en lecture seule d’objets hétérogènes
Bilan des tuples
Type ‘tuple’ cf. appel de la fonction type()
Collection d’objets de types hétérogènes
Taille et contenu fixé lors de l’écriture du programme
Impossible de modifier : objet non mutable
La variable de type tuple est en réalité une référence
(pointeur de pointeur)
Bénéficie du mécanisme de ramasse miettes
Accès indicé, plage d’indices possible, indices
négatifs possibles aussi
Structures complexes avec tuple de tuples
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 90
IV. Les collections sous Python
Les Listes
Tableau dynamique en lecture-écriture d’objets hétérogènes
Liste – Le type list
Liste ≈ tuple de taille dynamique et modifiable
#définition d'une liste Les [ ] sont importantes pour indiquer qu’il
L1 = [2,6,8,10,15,26] s’agit d’une liste, « , » sépare leséléments.
print(L1) [2,6,8,10,15,26]
#taille de la tuple = 6
[2,6,3,10,15,26]
print(len(L1))
Les autres mécanismes associés aux
#accès indicé = 2
tuples sont transposables aux listes :
a = L1[0]
print(a) • plages d’indices
• indiçages négatifs
#modification ! Possible ! • objets hétérogènes
L1[2] = 3 • liste de listes (tableaux 2D ou +)
print(L1) • concaténation, réplication
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 91
IV. Les collections sous Python
Les Listes Tableau dynamique en lecture-écriture d’objets hétérogènes
Liste – Le type list modification de taille et de contenu
Une liste est un objet (instance de classe) auquel est
associé des méthodes permettant de le manipuler.
#ajout
L2.append(21) [32,69,28,69,21]
print(L2)
#insertion à l'indice 1 [32,53,69,28,69,21]
L2.insert(1,53)
print(L2) [32,53,69,69,21] 28 a disparu de L2
#suppression elt n°3
del L2[3]
print(L2) [32,69,69,21] 53 a disparu de L2
#accès + suppression elt n°1
a = L2.pop(1)
print(a) renvoie 53
#inversion [21,69,69,32] Remarque :
L2.reverse()
print(L2) L2.clear()
#étendre [21,69,69,32,34,55] Permet de vider la liste
L2.extend([34,55])
print(L2) 92
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3
IV. Les collections sous Python
Les Listes Tableau dynamique en lecture-écriture d’objets hétérogènes
Liste – Le type list
Les « List Comprehensions » (traduite en « listes en intension »)
Objectif : un mécanisme simple (et concis) pour générer une liste à partir d’une autre liste.
Exemple 1 : Monter tous les chiffres au carré
source = [1,5,8,12,7]
resultat = []
for v in source: resultat = [v**2 for v insource]
resultat.append(v**2) print(resultat)
print(resultat)
Exemple 2 : Actionsconditionnelles
source = [1,5,8,12,7]
resultat = []
for v in source: resultat = [v**2 for v in source if (v %2== 0)]
if (v % 2 == 0): print(resultat)
resultat.append(v**2)
print(resultat)
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 93
IV. Les collections sous Python
Les Listes
Tableau dynamique en lecture-écriture d’objets hétérogènes
Liste – Le type list
Plus loin avec les listes : traitement par le contenu
L2 = [21,69,69,32,34,55]
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 94
IV. Les collections sous Python
Les Listes Tableau dynamique en lecture-écriture d’objets hétérogènes
Liste – Le type list
Les « List Comprehensions » (traduite en « listes en intension »)
Une variable de type liste est une référence
#L3
L3 = [61,92,17]
print(L3)
#affectation ? Enréa lité, c’est la référence qui estcopiée.
L4 = L3
print(L4) L3et L4 « pointent » au même endroit.
#modification d'une valeur
L4[1] = 55
#répercussions
print(L4) [61,55,17]
#mais aussi sur L3
print(L3) [61,55,17] ???
#L3
L3 = [61,92,17]
#copie des valeurs
L4référen ce une nouvelle zonemémoire,
L4 = L3.copy()
print(L4) et lesdon nées de L3 y sont recopiées.
L4[1] = 55
print(L4) [61,55,17]
print(L3) [61,92,17] !!!
L3 n’est pas impacté.
95
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3
IV. Les collections sous Python
Les Listes Tableau dynamique en lecture-écriture d’objets hétérogènes
Liste – Le type list Les « List Comprehensions » (traduite en « listes en intension »)
Un exemple : somme de valeurs saisies par l’utilisateur
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 96
IV. Les collections sous Python
Les Listes Tableau dynamique en lecture-écriture d’objets hétérogènes
Liste – Le type list Les « List Compréhensions » (traduite en « listes en intension »)
Un exemple : boucle directe sur les éléments de la liste
Permet de définir une
liste initialement vide.
Une liste est directement
« itérable », il n’est pas
nécessaire de passer par un
indice (un peu comme le
foreach de certains langages
de prog.).
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 97
IV. Les collections sous Python
CHAÎNE DE CARACTÈRES Un cas particulier de liste
Une chaîne de caractères est une liste particulière avec des méthodes associées
#définir une chaîne
s1 = "bonjour le monde" Guillemets pour délimiter une chaîne
print(s1)
#longueur
long = len(s1) Mécanisme identique aux
print(long)
#accès indicé
tuples et listes
s2 = s1[:7]
print(s2)
#non modifiable ERREUR.Une chaîne n’est pas modifiable. Il faut mettre
#s1[0] = "B" le résultat d’une manipulation dans une autre chaîne.
#méthodes associées
S = s1.upper()
print(S)
#recherche d'une sous-chaîne id = S.find("JO")
Des méthodes spécifiques permettent
print(id) 3(1ère occurrence si plusieurs)
de manipuler les chaînes. Cf.
#nb d'occurences
nb = S.count("ON") https://docs.python.org/3/library/stdt
print(nb) 2 ypes.html#text-sequence-type-str
#remplacement de « O » par « A »
SA = S.replace("O","A")
print(SA) 98
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3
IV. Les collections sous Python
CHAÎNE DE CARACTÈRES Un cas particulier de liste
Transformation explicite en liste (pour traitements)
Une chaîne peut être transformée en liste pour réaliser des traitements sophistiqués. L’outil est très souple.
#transf. en liste [‘B’,’O’,’N’,’J’,’O’,’U’,’R’,’ ‘,’L’,’E’,’ ‘,’M’,’O’,’N’,’D’,’E’]
liste = list(S) Toutes les opérations sur les listes sont possibles par la suite.
print(liste)
#découpage par séparateur [‘BONJOUR’,’LE,’MONDE’]
decoupe = S.split(" ") Espace est utilisé comme séparateur ici, mais
print(decoupe) ça peut être tout autre carac., y compris un
caractère spécial (ex. \t pourtabulation)
#former une chaîne à
#partir d’une liste "BONJOUR-LE-MONDE"
SB = "-".join(decoupe) Les mots de la liste ont été fusionnés avec le
print(SB) séparateur "-". Tout séparateur est possible, y
compris la chaîne vide.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 99
IV. Les collections sous Python
CHAÎNE DE CARACTÈRES Un cas particulier de liste
Une chaîne de caractères est une liste particulière avec des méthodes associées
Un exemple
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 100
IV. Les collections sous Python
CHAÎNE DE CARACTÈRES
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 101
IV. Les collections sous Python
CHAÎNE DE CARACTÈRES
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 102
IV. Les collections sous Python
CHAÎNE DE CARACTÈRES
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 103
IV. Les collections sous Python
CHAÎNE DE CARACTÈRES
Les variables sur Python
Quelques fonctions pour manipuler des chaînes de caractères sur python
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 104
IV. Les collections sous Python
CHAÎNE DE CARACTÈRES
Les variables sur Python
Quelques fonctions pour manipuler des chaînes de caractères sur python
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 105
IV. Les collections sous Python
CHAÎNE DE CARACTÈRES
Les variables sur Python
Quelques fonctions pour manipuler des chaînes de caractères sur python
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 106
IV. Les collections sous Python
Les dictionnaires Liste avec accès par clé Dictionnaire : collection
#définition d'un dictionnaire
non-ordonnée (non
d1 = {'Pierre':17, 'Paul':15,'Jacques':16}
print(d1) indicée) d’objets (simples
#ou Noter le rôle de { }, de « :»
ou évolués) s’appuyant sur
print(d1.items()) et « , »
#nombre d'élements
le mécanisme associatif
print(len(d1)) 3 éléments « clé – valeur ».
#liste des clés [‘Paul’, ‘Jacques’, ‘Pierre’]
print(d1.keys())
#liste des valeurs
[15, 16, 17]
print(d1.values())
#accès à une valeur par clé Remarques :
print(d1['Paul']) 15 1) d1.clear() vide
#ou le dictionnaire
print(d1.get('Paul')) 15
(2) d1 est une référence,
#si clé n'existe pas d1.copy() permet de
print(d1['Pipa']) ERREUR copier le contenu.
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 107
IV. Les collections sous Python
Les dictionnaires Liste avec accès par clé
Dictionnaire – Modifications, ajouts et suppressions
#modification
d1['Jacques'] = 18 {'Pierre':17, 'Paul':15,'Jacques':16} {'Pierre':17, 'Paul':15,'Jacques':18}
print(d1) Ajout par définition d’une nouvelle paire « clé – valeur ».
#ajouter un élément N.B. : Si ‘Henri’ existe déjà, son ancienne valeur sera
d1['Henri'] = 22 écrasée.
print(d1) {'Pierre':17, 'Paul':15,'Jacques':18, ‘Henri’:22}
#ajout d'un bloc d’éléments
d1.update({'Monica':36,'Bill':49})
print(d1) {'Pierre':17, 'Paul':15,'Jacques':18, ‘Henri’:22, ‘Monica’:36, ‘Bill’ : 49}
#détecter présence clé
test = 'Pierre' in d1
print(test) True
#suppression par clé
del d1['Monica']
print(d1) {'Pierre':17, 'Paul':15,'Jacques':18, ‘Henri’:22, ‘Bill’ : 49}
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 108
IV. Les collections sous Python
Les dictionnaires Liste avec accès par clé
Plus loin avec les clés
Les clés ne sont pas forcément des chaînes de caractères.
L’outil est très souple mais, attention, autant de liberté
peut être aussi préjudiciable. Il faut être très rigoureux.
#autre type de clé
d2 = {('Pierre',56):['Directeur',1253,True],('Paul',55):['Employé',100,False]}
print(d2.keys())
print(d2.values())
Dans cet exemple :
• clé est un tuple ;
• valeur est une liste.
D’autres types sont possibles (ex. instances de classes ).
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 109
IV. Les collections sous Python
Les dictionnaires Liste avec accès par clé Exemple
Accès indicé malaisé (très),
on a intérêt à passer par un
itérateur pour passer en
revue le dictionnaire.
Exemple :
Kate 15.0
Pipa 23.5
William 10.7
49.2
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 110
IV. Les collections sous Python
Les opérateurs en python
Opérateurs d'identité Python
Les opérateurs d'identité sont utilisés pour comparer les objets, non pas s'ils sont
égaux, mais s'ils sont en fait le même objet, avec le même emplacement mémoire
Opérateurs d'appartenance Python
Les opérateurs d'appartenance sont utilisés pour tester si une séquence est présentée
dans un objet
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 111
IV. Les collections sous Python
Les types de données intégrés
En programmation, le type de données est un concept important.
Les variables peuvent stocker des données de différents types et différents types
peuvent faire des choses différentes.
Python a les types de données suivants intégrés par défaut, dans ces catégories :
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 112
IV. Les collections sous Python
Les types de données intégrés
Vous pouvez obtenir le type de données de n'importe quel objet en
utilisant la fonction type().
Exemple :
x = 5
print(type(x))
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 113
IV. Les collections sous Python
Les types de données intégrés
Il existe quatre types de données de collecte dans le langage de programmation
Python:
• List est une collection ordonnée et modifiable. Autorise les membres en double.
• Tuple est une collection ordonnée et immuable (ne change pas). Autorise les
membres en double.
• Set est une collection non ordonnée et non indexée. Aucun membre en double.
• Dictionary est une collection ordonnée (uniquement à partir de la version 3.7 de
python) et modifiable. Aucun membre en double
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 114
V. Les vecteurs avec Numpy
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 115
V. Les vecteurs avec Numpy
Numpy
• Numpy est un package pour Python spécialisé dans la manipulation
des tableaux (array), pour nous essentiellement les vecteurs et les
matrices
• Les tableaux « numpy » ne gère que les objets de même type
• Le package propose un grand nombre de routines pour un accès
rapide aux données (ex. recherche, extraction), pour les
manipulations diverses (ex. tri), pour les calculs (ex. calcul statistique)
• Les tableaux « numpy » sont plus performants (rapidité, gestion de
la volumétrie) que les collections usuelles de Python
• Les tableaux « numpy » sont sous-jacents à de nombreux packages
dédiés au calcul scientifique sous Python.
• Attention, un vecteur est en réalité une matrice à 1 seule dimension
Il n’est pas possible de tout aborder dans ce support. Pour aller plus loin, voir absolument le
manuel de référence (utilisé pour préparer ce diaporama).
http://docs.scipy.org/doc/numpy/reference/index.html
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 116
V. Les vecteurs avec Numpy
CRÉATION D’UN VECTEUR Création via une saisie manuelle
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 117
V. Les vecteurs avec Numpy
CRÉATION D’UN VECTEUR Typage des données
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 118
V. Les vecteurs avec Numpy
CRÉATION D’UN VECTEUR Création d’une séquence de valeurs
#suite arithmétique de raison 1
a = np.arange(start=0,stop=10)
print(a) #[0 1 2 3 4 5 6 7 8 9], attention dernière valeur est exclue
#suite arithmétique de raison step
a = np.arange(start=0,stop=10,step=2)
print(a) #[0 2 4 6 8]
#suite linéaire, nb. de valeurs est spécifié par num
a = np.linspace(start=0,stop=10,num=5)
print(a) #[0. 2.5 5. 7.5 10.], la dernière valeur est incluse ici
#vecteur de valeurs identiques 1 – 1 seule dim et 5 valeurs
a = np.ones(shape=5)
print(a) # [1. 1. 1. 1. 1.]
#plus généralement – répétition 5 fois (1 dimension) de la valeur 3.2
a = np.full(shape=5,fill_value=3.2)
print(a) #[3.2 3.2 3.2 3.2 3.2]
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 119
V. Les vecteurs avec Numpy
CRÉATION D’UN VECTEUR Chargement à partir d’un fichier - Conversions
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 120
V. Les vecteurs avec Numpy
CRÉATION D’UN VECTEUR Redimensionnement
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 121
V. Les vecteurs avec Numpy
EXTRACTION DES VALEURS
Accès indicé – Plages d’indices – v = np.array([1.2,7.4,4.2,8.5,6.3])
#toutes les valeurs
print(v)
#ou
print(v[:]) # noter le rôle du : , il faut lire ici début à fin
#accès indicé - première valeur
print(v[0]) # 1.2 – Noter que le 1er indice est 0 (zéro)
#dernière valeur
print(v[v.size-1]) #6.3, v.size est ok parce que v est un vecteur
#plage d'indices contigus
print(v[1:3]) # [7.4 4.2]
#extrêmes, début à 3 (non-inclus)
print(v[:3]) # [1.2 7.4 4.2]
#extrêmes, 2 à fin Remarque : Mis à part les
print(v[2:]) # [4.2 8.5 6.3]
singletons, les vecteurs générés
#indice négatif
print(v[-1]) # 6.3, dernier élément sont de type numpy.ndarray
#indices négatifs
print(v[-3:]) # [4.2 8.5 6.3], 3 derniers éléments
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 122
V. Les vecteurs avec Numpy
EXTRACTION DES VALEURS
Accès indicé – Ecriture générique – v = np.array([1.2,7.4,4.2,8.5,6.3])
La notation générique des indices est : début : fin : pas
fin est non inclus dans la liste
#valeur n°1 à n°3 avec un pas de 1
print(v[1:4:1]) # [7.4, 4.2, 8.5]
#le pas de 1 est implicite
print(v[1:4]) # [7.4, 4.2, 8.5]
#n°0 à n°2 avec un pas de 2
print(v[0:3:2]) # [1.2, 4.2]
#le pas peut être négatif, n°3 à n°1 avec un pas de -1
print (v[3:0:-1]) # [8.5, 4.2, 7.4]
#on peut exploiter cette idée pour inverser un vecteur
print(v[::-1]) # [6.3, 8.5, 4.2, 7.4, 1.2]
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 123
V. Les vecteurs avec Numpy
EXTRACTION DES VALEURS
Accès par conditions – indiçage booléen – v = np.array([1.2,7.4,4.2,8.5,6.3])
#extraction avec un vecteur de booléens
#si b trop court, tout le reste est considéré False
b = np.array([False,True,False,True,False],dtype=bool) print(v[b]) # [7.4
8.5]
#on peut utiliser une condition pour l'extraction
print(v[v < 7]) # [1.2 4.2 6.3]
#parce que la condition est un vecteur de booléen
b=v<7
print(b) # [True False True False True]
print(type(b)) # <class ‘numpy.ndarray’>
#on peut utiliser la fonction extract()
print(np.extract(v < 7, v)) # [1.2 4.2 6.3]
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 124
V. Les vecteurs avec Numpy
EXTRACTION DES VALEURS
Tri et recherche – – v = np.array([1.2,7.4,4.2,8.5,6.3])
#recherche valeur max Remarque : L’équivalent
existe pour min()
print(np.max(v)) # 8.5
#recherche indice de valeur max
print(np.argmax(v)) # 3
#tri des valeurs
print(np.sort(v)) # [1.2 4.2 6.3 7.4 8.5]
#récupération des indices triés
print(np.argsort(v)) # [0 2 4 1 3]
#valeurs distinctes
a = np.array([1,2,2,1,1,2])
print(np.unique(a)) # [1 2]
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 125
V. Les vecteurs avec Numpy
CALCULS SUR LES VALEURS
Calculs (statistiques) récapitulatifs – – v = np.array([1.2,7.4,4.2,8.5,6.3])
#moyenne
print(np.mean(v)) # 5.52
#médiane
print(np.median(v)) # 6.3
#variance
print(np.var(v)) # 6.6856
#quantile
print(np.percentile(v,50)) #6.3 (50% = médiane)
#somme
print(np.sum(v)) # 27.6
#somme cumulée
print(np.cumsum(v)) # [1.2 8.6 12.8 21.3 27.6]
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 126
V. Les vecteurs avec Numpy
CALCULS SUR LES VALEURS
Calculs entre vecteurs – Le principe « elementwise »
#calculs entre vecteurs
x = np.array([1.2,1.3,1.0])
y = np.array([2.1,0.8,1.3]) Principe : Les calculs se font élément par élément
#multiplication (elemenstwise) entre vecteurs « numpy »
print(x*y) # [2.52 1.04 1.3] - On a le même principe sous R.
#addition
print(x+y) # [3.3 2.1 2.3]
#multiplication par un scalaire
print(2*x) # [2.4 2.6 2. ]
#comparaison de vecteurs
x = np.array([1,2,5,6])
y = np.array([2,1,7,4])
b = x > y print(b) # [False True False True]
#opérations logiques
a = np.array([True,True,False,True],dtype=bool)
b = np.array([True,False,True,False],dtype=bool) #ET
La liste des fonctions est longue. Voir -
logique
http://docs.scipy.org/doc/numpy/reference
np.logical_and(a,b) # [True False False False] #OU
/routines.logic.html
exclusif logique
np.logical_xor(a,b) # [False True True True]
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 127
V. Les vecteurs avec Numpy
CALCULS SUR LES VALEURS
Fonctions matricielles
Principe : Des fonctions spécifiquement matricielles existent, certaines s’appliquent à des vecteurs
x = np.array([1.2,1.3,1.0])
y = np.array([2.1,0.8,1.3])
#produit scalaire
z = np.vdot(x,y)
print(z) # 4.86
#ou l’équivalent calculé
print(np.sum(x*y)) # 4.86
#norme d'un vecteur
n = np.linalg.norm(x)
print(n) # 2.03
#ou l’équivalent calculé
import math
print(math.sqrt(np.sum(x**2))) # 2.03
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 128
V. Les vecteurs avec Numpy
CALCULS SUR LES VALEURS Opérations ensemblistes
Principe : Un vecteur de valeurs (surtout entières)
peut être considéré comme un ensemble de valeurs.
#opérations ensemblistes
x = np.array([1,2,5,6])
y = np.array([2,1,7,4])
#intersection
print(np.intersect1d(x,y)) # [1 2]
#union – attention, ce n’est pas une
concaténation
print(np.union1d(x,y)) # [1 2 4 5 6 7]
#différence c.à-d. qui sont dans x et pas dans y
print(np.setdiff1d(x,y)) # [5 6]
13/11/2025 Dr Gouayon KOALA UTS MPI/L2_S3 129