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

Support FormationPython 2019 Bloc1

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

Support FormationPython 2019 Bloc1

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

UE ALGORITHME ET PROGRAMMATION

ECUE LANGAGE
PYTHON &
ALGORITHMIQUE
Code PROG242302
Volume Horaire: 48H
4 ECTS

Dr Lambert KADJO
DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
www.kadjo-lambert.c4.fr
1-PREMIER CONTACT AVEC PYTHON 1.1 Principales caractéristiques du
langage Python
Caractéristiques
 Python est un langage de programmation impérative, structurée, orientée objet, de haut
niveau
 Python étant ainsi appelé en référence à la troupe de comiques britanniques Monty
Python, le nom IDLE pourrait être une référence à Eric Idle, un membre fondateur de la
troupe.
 Il présente les avantages suivants :
 Sa syntaxe est très simple et concise : "on code ce que l'on pense".
 Proche du 'langage algorithmique'.
 Moderne. Très largement répandu dans l'industrie, l'enseignement et la recherche, notamment
pour ses applications scientifiques. Une large communauté participe à son développement.
 Puissant, muni de nombreuses bibliothèques de fonctions. Dont de très bonnes bibliothèques
scientifiques.
 Pratique pour travailler sur des objets mathématiques. Assez proche du langage mathématique.
 Multi paradigmes, supportant les principaux styles de programmation : impératif, procédural,
orienté objet...
 Multi plateformes : GNU/Linux, Mac OS X, Windows...
 Libre et gratuit : logiciel Open Source (www.opensource.org) distribué sous la licence PSF (Python
Software Foundation) compatible avec la GPL (Gnu Public Licence).
 Gratuit, disponible sur la plupart des plateformes (Windows, Mac, Linux, ...).
 Python est dynamiquement typé.
DATA SCIENCE INSTITUTE/INP-HB 2019
 Python est extensible : On peut l'interfacer avec d'autres langages (C, C++, Delphi, Java…)
Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.1 Principales caractéristiques du
langage Python

Historique
 1991 : Guido van Rossum travaille aux Pays-Bas sur le projet AMOEBA,
un système d’exploitation distribué. Il conçoit Python à partir du langage
ABC et publie la version 0.9.0 sur un forum Usenet

 1996 : sortie de Numerical Python. Ce langage a été baptisé ainsi en hommage à la troupe
de comiques les « Monty Python ».

 2001 : naissance de la PSF (Python Software Fundation). Les versions se succèdent. Un


grand choix de modules est disponible, des colloques annuels sont organisés, Python est
enseigné dans plusieurs universités et est utilisé en entreprise.

 Fin 2008 : sorties simultanées de Python 2.6 et de Python 3.0


 depuis 2013 : développement des branches 2 et 3 : v2.7.3 et v3.3.0
DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Quelques implémentations
Plusieurs implémentations existent :

 CPython : Classic Python, codé en C, implémentation portable sur différents systèmes.


 Jython : ciblé pour la JVM (utilise le bytecode de JAVA)
 IronPython : Python.NET, écrit en C#, utilise le MSIL (MicroSoft Intermediate Language)
 Stackless Python: élimine l’utilisation de la pile du langage C
 Pypy : projet de recherche européen d’un interpréteur Python écrit en Python
 CPython : Classic Python, codé en C, portable sur différents systèmes
 Python3000 : Python 3, la nouvelle implémentation de CPython
 Unladen Swallow est un nouveau projet de Google utilisant les techniques de
compilation JIT de Java. Ce projet multipliera par 5 la vitesse d'exécution de Python.

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Quelques implémentations
 De nombreuses bibliothèques aident le développeur à travailler sur des projets particuliers.
Plusieurs bibliothèques peuvent ainsi être installées pour, par exemple :
développer des interfaces graphiques en Python.
écrire de petits programmes très simples, appelés scripts, chargés permettant
d’effectuer des tâches très précises sur l’ordinateur ;
écrire des programmes complets, comme des jeux, des suites bureautiques, des logiciels
multimédias, des clients de messagerie…
faire des projets très complexes, comme des progiciels (ensemble de plusieurs logiciels
pouvant fonctionner ensemble, principalement utilisés dans le monde professionnel).

De nombreux modules couvrant des domaines très variés :


numpy : algèbre linéaire, matrices, vecteurs, systèmes linéaires...
scipy : probalilité/statistiques, FFT 1D, 2D..., filtrage numérique, images ;
Matplotlib: tracé de courbes ;
os : manipulation des répertoires et des fichiers

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Python dans les cœurs

DATA SCIENCE INSTITUTE/INP-HB 2019


http://statisticstimes.com/tech/top-computer-languages.php
Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Python dans les cœurs

DATA SCIENCE INSTITUTE/INP-HB 2019


http://statisticstimes.com/tech/top-computer-languages.php
Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Python dans les cœurs


TIOBE s’appuie sur une formule qui
évalue le nombre de fois que le
nom d’un langage spécifique est
recherché sur les moteurs de
recherche comme Yahoo, Google,
Wikipédia, Bing, Amazon, YouTube
et Baidu.

PYPL (PopularitY of Programming


Language Index) s’appuie sur une
formule qui évalue le nombre de
fois qu’un tutoriel sur un langage
spécifique est recherché sur Google,
en exploitant les données
provenant de Google Trends via le
mot-clé « tutoriel ». DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Python dans les cœurs

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Python dans les cœurs

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Python dans les cœurs

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Installation de Python sous Linux


Les éléments nécessaires sont :
 une version de Python comme cités ci-dessus. Notez que les anciennes versions en 2.x sont
incompatibles avec les plus récentes en 3.x.
 un éditeur de texte.
Cependant, on peut utiliser un environnement de développement intégré ou IDE (Integrated
DeveLopment Environment)
 Anjuta ;
 Spyder (Scientific PYthon Development EnviRonment) : multiplateforme , libre, orienté scientifique.
 Eric Python IDE
 Geany est un éditeur de texte léger utilisant GTK+ et Scintilla et incluant les fonctions élémentaires
d'un environnement de développement intégré
 IDLE (Integrated DeveLopment Environment) : éditeur et interpréteur Python
 Komodo Edit
 Ninja-IDE
 PIDA
 PyCharm
 Eclipse
 PyScripter
 Python Tools for Visual Studio
 PythonAnywhere
 SourceLair : pour la programmation en ligne dans le cloud.
 Stani's Python Editor
DATA SCIENCE INSTITUTE/INP-HB 2019
 Wing IDE
Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Installation de Python sous Linux


Python est pré-installé sur la plupart des distributions Linux. Cependant, il est possible que
vous n'ayez pas la dernière version en date.
Pour le vérifier, tapez dans un terminal la commande python -V.

 Cette commande renvoie la version de Python actuellement installée sur le système. Il


est très probable que ce soit une version 2.x, comme 2.6 ou 2.7, pour des raisons de
compatibilité.
 Pour installer Python 3.x dont la syntaxe est très proche de Python 2.x mais diffère, il
faut :
.

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Installation de Python sous Linux


2) Télécharger la dernière version de Python
(https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz)

3) depuis le dossier où se trouve l'archive , décompresser l'archive en tapant

4) Exécuter le script configure en tapant ./configure depuis l e dossier créé

5) enfin
DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Installation de Python sous Linux


ou il suffit d’installer les paquets Python en fonction des besoins avec les outils disponibles
- avec l’installeur graphique (logithèque, muon, synaptic...),
- ou avec la ligne de commande (adept, apt-get, yum...) de votre distribution.
Paquets Python 2.7 (Ubuntu 12.04 Precise, Debian Wheezy...)
python2.7 python-numpy python-scipy python-matplotlib python-qt4
Paquets Python 3.x (Ubuntu 14.04 Trusty, Debian Jessie...)
python3 python3-numpy python3-scipy python3-matplotlib python3-pyqt4

Si, par exemple, vous avez installé Python 3.6, vous pouvez y accéder grâce à la commande :

Pour fermer la ligne de commande Python, n'utilisez pas CTRL + C mais CTRL + D ou exit().
DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Installation de Python sous Linux


on pourrait aussi créer un environnement virtuel

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Installation de Python sous Windows


 La distribution de base proposée sur Python.org n’inclut pas les modules numpy, scipy, etc.
 Pour l’installation, on peut utiliser un logiciel installateur, qui se charge d’installer les nombreux modules
utiles au calcul scientifique ainsi que les IDE les plus connus (IDLE, Spyder...).

 Installateurs libres
- Python scientifique:
Python(x,y) pour Python 2,
WinPython pour Python 2 et 3

 Installateurs propriétaires / gratuits


- Continuum Analytics :
Anaconda pour Python 2 et 3,
Enthought Canopy pour Python 2)

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Installation de Python sous Windows


 Pour l’installation de modules sans installateur
1) Aller sur http://www.python.org/download
2) Sélectionner la version de Python que vous souhaitez utiliser.
3) On vous propose un (ou plusieurs) lien vers une version Windows : sélectionnez celle
convenant à votre processeur. Si vous avez un doute, téléchargez une version « x86 ».
4) Installer la version téléchargée.
5) Dans Démarrer >
Tous les programmes.
Python devrait apparaître
dans cette liste

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Installation de Python sous Windows


 Pour l’installation de modules sans installateur
1) Aller sur https://www.anaconda.com/download/
2) Sélectionner la version de Python que vous souhaitez utiliser.

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Installation de Python sous Windows


 Pour l’installation de modules sans installateur
1) Aller sur https://www.anaconda.com/download/
2) Sélectionner la version de Python que vous souhaitez utiliser.

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Technique de production de Python


Lorsqu’un programme source est fourni, Python commence par le compiler pour produire un
code intermédiaire (similaire à un langage machine) appelé bytecode, lequel sera ensuite
transmis à un interpréteur pour l'exécution finale.
Pour l'ordinateur, le bytecode est très facile à interpréter en langage machine. Cette
interprétation sera donc beaucoup plus rapide que celle d'un code source.

 Les avantages de cette méthode sont :


L’interpréteur permet de tester immédiatement n'importe quel petit morceau de
programme permettant ainsi de vérifier le bon fonctionnement de chaque composant
d'une application au fur et à mesure de sa construction.
L'interprétation du bytecode compilé est très satisfaisante pour de très nombreux
programmes, y compris graphiques.
Le bytecode est portable. Pour qu'un programme Python puisse s'exécuter sur
différentes machines, il suffit de disposer d'un interpréteur adapté.
DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Technique de production de Python


Production d’un exécutable Python avec pyinstaller

https://pyinstaller.readthedocs.io/en/stable/usage.html

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Technique de production de Python


Production d’un exécutable Python

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Technique de production de Python


Production d’un exécutable Python Génération d’un
sous répertoire dist

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Utilisation d’un IDE: Spyder

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Utilisation d’un IDE: Spyder


 L’éditeur: permet de rédiger des programmes;
La console permet de tester des commandes et renvoie les résultats des programmes
rédigés dans l’éditeur (autres onglets)
L’explorateur avec pour onglets :
 L’inspecteur d’objets qui donne des informations sur l’utilisation des fonctions
activées
 L’explorateur de variables qui donne la liste et les valeurs de toutes les variables qui
ont été crées
 L’explorateur de fichiers qui donne accès au disque dur

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Utilisation d’un IDE: Spyder


Spyder est constitué de 3 fenêtres

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Utilisation d’un IDE: Spyder


 L’interpréteur : 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.

 ou d’autres interpréteurs tels


que celui de la console IPython.

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Utilisation d’un IDE: Spyder


 L’éditeur: On peut y écrire des scripts, c’est-à-dire des programmes petits ou grands.
Lors de la saisie, des propositions sont faites

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
1-PREMIER CONTACT AVEC PYTHON 1.2 Environnements matériels et logiciel

Utilisation d’un IDE: Spyder


 L’Analyseur de Code: On peut y écrire des scripts, c’est-à-dire des programmes petits ou
grands.
analyse de code approfondie avec pylint ;

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
2- BASES DU LANGAGE PYTHON

PEP(Python Enhancement Proposal)


Homogénéïté de la bibliothèque standard
Lisibilité
Bonne pratique qui se propage

 https://www.python.org/dev/peps/
Exemple: https://www.python.org/dev/peps/pep-0008/

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
2- BASES DU LANGAGE PYTHON

Le langage Python est constitué :


de mots clefs, qui correspondent à des instructions élémentaires (for, if...) ;
de littéraux : valeurs constantes de types variés (25, 1.e4, ’abc’...) ;
de types intrinsèques (int, float, list, str...) ;
d’opérateurs (=, +, *, /, %...) ;
de fonctions intrinsèques (Built-in Functions) qui complètent le langage.

L’utilisateur peut créer :


 des classes : nouveaux types qui s’ajoutent aux types intrinsèques ;
 des objets : entiers, flottants, chaînes, fonctions, programmes, modules..., instances de
classes définies par l’utilisateur ;
 des expressions combinant identificateurs, opérateurs, fonctions, ..

NB: En Python, tout est objet, on accède à ces objets par leur référence. Cependant, on ne
manipule JAMAIS directement les références des objets: les noms de variables servent à
cela.
Lorsqu’un objet est créé, il hérite de toutes les méthodes de son type.
DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
2- BASES DU LANGAGE PYTHON 2.1 Notion de variables

Noms de variables
 Le nom est une suite quelconque de caractères alphanumériques (lettres alphabétiques
(majuscules ou non mais attention cela définit une variable différente), de chiffres
décimaux, de tiret bas.
 Par exemple ces deux variables sont différentes

 Par convention, on utilise uniquement des


minuscules pour désigner les variables
simples (ainsi que les noms de fonctions);
 les majuscules sont réservées en
principe pour d'autres sortes de
variables, comme les noms de classe, les
constantes.

 Pour des raisons de lisibilité, il est


également possible d'utiliser le tiret
bas _ dans les noms de variables. Par
exemple, on préféra age_moyen à
AgeMoyen. DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
2- BASES DU LANGAGE PYTHON 2.1 Notion de variables

Noms de variables
NB :
 Le premier caractère ne peut pas être un chiffre.
 Il est, en théorie, possible de faire commencer un nom de variable par un tiret bas
comme premier caractère;
 il est fortement déconseillé d'utiliser des noms de la forme __variable__ qui sont
réservés au langage.
 Il n'est pas possible d'utiliser d'autres caractères que les caractères
alphanumériques et le tiret bas. Notamment le tiret haut - est interprété comme
l'opération de soustraction
 En Python, les variables sont sensibles à la casse

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
2- BASES DU LANGAGE PYTHON 2.1 Notion de variables

Noms de variables
Mots-clés:

Il existe en python certains mots spéciaux, qu'on appelle des mots-clés, ou keywords en
anglais, qui sont réservés et ne peuvent pas être utilisés comme un nom de variable.
La liste complète des 33 mots-clés est

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
2- BASES DU LANGAGE PYTHON 2.1 Notion de variables

Noms de variables
Mots clefs du langage

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
2- BASES DU LANGAGE PYTHON 2.1 Notion de variables

Noms de variables
Mots-clés du langage

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
2- BASES DU LANGAGE PYTHON 2.2 Affectations

Affectations simples
Une affectation se fait en utilisant le signe =

On remarque au passage que, dans l’interpréteur interactif, taper juste age a le même effet
que print(age). Ce n’est pas le cas dans l’éditeur où l’on a besoin de la fonction print pour
afficher un résultat.
DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
2- BASES DU LANGAGE PYTHON 2.2 Affectations

Affectations multiples
Python permet les affectations multiples:

Avec la notion de tuple


ou de liste, Python
permet aussi les
affectations parallèles:

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
2- BASES DU LANGAGE PYTHON 2.2 Affectations

Opérateurs avec affectation


il existe des "opérateurs combinés" pour tous les opérateurs arithmétiques, pour
les opérateurs sur les chaînes de caractères, etc.

Opérateurs équivalence
x += y x=x+y
x -= y x=x-y
x *= y x=x*y
x /= y x=x/y
x //= y x = x // y
x **= y x = x ** y
x %= y x=x%y

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
2- BASES DU LANGAGE PYTHON 2.3 Entrée/sortie standard

Entrée standard (clavier)


Python dispose de deux instructions : input() et raw_input() pour pouvoir demander à
l’utilisateur de saisir une chaîne de caractères.
La lecture du clavier (entrée standard) est aussi simple que l'écriture à l'écran.
Toutefois, il faut savoir que python lit du clavier ligne par ligne. Il attend donc toujours
un retour de chariot ou un caractère de fin de fichier avant d'analyser le texte tapé.
 raw_input() : "raw" en anglais veut dire "cru". La chaîne de caractères saisie va donc être
conservée comme une chaîne de caractères.
 NB: Cette fonction utilisée par Python 2.7 a été renommée en input() par Python 3.x.
 input() : cette fonction effectue toujours une saisie en mode texte
 la valeur retournée est une chaîne, c’est-à-dire un type str dont on peut ensuite
changer le type (on dit aussi transtyper ou caster) avec int, float, etc.

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
2- BASES DU LANGAGE PYTHON 2.3 Entrée/sortie standard

sortie standard (écran)


La fonction principale est print() qui permet d’afficher surtout des chaînes de caractères.
Elle se charge d’afficher la représentation textuelle des informations qui lui sont données
en paramètre, en plaçant un blanc séparateur entre deux informations, et en faisant un
retour à la ligne à la fin de l’affichage (le séparateur et la fin de ligne peuvent être
modifiés)
NB : Depuis la version 3 de Python, la commande print est considérée comme une
fonction dont il faut alors mettre les arguments entre parenthèses
 La syntaxe est

print(valeur1, valeur2, …, valeurN, sep=‘ ‘, end=‘\n’, file=sys.stdout)

 valeur1, valeur2, …, valeurN peuvent être des constantes ou des identificateurs de


variables associées à des références d’objets
- en python, le simple quote peut encadrer le double, et le double peut encadrer le
simple car la chaîne commence au premier guillemet et finit au même guillemet.
 le séparateur par défaut (espace) peut être remplacé par un autre caractère
quelconque (ou même par aucun caractère), grâce à l'argument « sep »
 le saut à la ligne terminal par défaut (nouvelle ligne) peut être remplacé par un autre
caractère quelconque grâceDATA à l'argument « end » 2019
SCIENCE INSTITUTE/INP-HB
Dr Lambert KADJO
2- BASES DU LANGAGE PYTHON 2.3 Entrée/sortie standard

sortie standard (écran)

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
2- BASES DU LANGAGE PYTHON 2.3 Entrée/sortie standard

sortie standard (écran)


 On peut effectuer un formatage des chaînes de caractères avec la méthode str.format
Syntaxe: print("chaîne de formatage contenant des {...}".format(objet1, objet2, ...))
formats signification
.df d décimales, format flottant
.de d décimales, format scientifique
n.de n caractères avec d décimales, format scientifique
s chaîne de caractères
d entier en base 10
g choisit le format le plus approprié

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
2- BASES DU LANGAGE PYTHON 2.3 Entrée/sortie standard

sortie standard (écran)


 On peut effectuer un formatage des chaînes de caractères avec la méthode str.format
Syntaxe: print("chaîne de formatage contenant des {...}".format(objet1, objet2, ...))
formats signification
.df d décimales, format flottant
.de d décimales, format scientifique
n.de n caractères avec d décimales, format scientifique
s chaîne de caractères
d entier en base 10
g choisit le format le plus approprié

Le formatage "à la printf du C" peut aussi se faire avec l’opérateur %

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
2- BASES DU LANGAGE PYTHON 2.3 Entrée/sortie standard

sortie standard (écran)


 autres formatage avec str.format

nom et ville ne sont pas des variables, ce sont juste des mots clés
 On peut également combiner position numérique et mots clés

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
2- BASES DU LANGAGE PYTHON 2.3 Entrée/sortie standard

sortie standard (écran)


 autres formatage avec str.format

On peut préciser les tailles minimales des chaines de caractères, Cela insère une
chaine vide en début d’écriture si la taille est inférieure à celle fixée.

Valeur minimum de caractères


DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
2- BASES DU LANGAGE PYTHON 2.3 Entrée/sortie standard

sortie standard (écran)


 autres présentation de résultat avec repr() et rjust()
repr() pour afficher la valeur de la variable sous forme de chaine de caractères

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
PAUSE

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
www.kadjo-lambert.c4.fr Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES

Typage dynamique en Python


le typage dynamique est une notion clé en Python

 Le typage dynamique consiste à laisser l'ordinateur réaliser l’opération de typage « à la


volée », lors de l'exécution du code
 le programmeur est donc déchargé de la tâche contraignante de déclarer expressément,
le type de chaque variable qu'il introduit dans son code.
 le type des objets manipulés n'est pas forcément connu à l'avance

NB: Les variables n’ont pas de type mais référencent des objets en mémoire qui ont un type

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.1 Les types de données simples

Les types de données entiers


Le type int
Le type int n’est limité en taille que par la mémoire de la machine alors que dans la plupart
des autres langages , et même en python 2, les entiers int sont codés sur un nombre fixe de
bits et ont un domaine de définition limité. Par exemple, sur une machine 32-bits, la taille
d'un int sera de 32 bits.
L’entier peut être écrit simplement en décimal (2016), en binaire (0b11111100000), en octal
(0o3740), en hexadécimal (0x7e0)
Un entier écrit en base 10 (par exemple 2016) peut se représenter en binaire, octal et
hexadécimal en utilisant bin () pour la conversion binaire, oct() pour la conversion octal,
hex() pour la conversion hexadécimal
 peut etre précédé du signe -

 La fonction int() convertit un nombre d’une base B (défaut : 10) en base 10

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.1 Les types de données simples

Les types de données entiers


Le type bool
En Python, les valeurs des variables booléennes sont notées False et True. Les opérateurs
sont notés respectivement not, and et or.
Lorsque l'on saisit les conditions suivantes les valeurs retournées peuvent prendre 2
valeurs : True ou False. Elles sont de type booléen 'bool'

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.1 Les types de données simples

Les types de données entiers


Le type bool
Conversion en booléen : bool()
 La fonction de conversion bool() convertit une valeur de n'importe quel type en un
booléen, selon les règles suivantes :
 Un nombre 'int' ou 'float' est converti à True s'il est non nul, à False sinon.
 Une chaîne de caractères 'str' est convertie à True si elle est non vide, à False si
c'est la chaîne vide : ""

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.1 Les types de données simples

Les types de données flottants


Le type float
Un float est noté avec un point décimal (pas avec une virgule) ou en notation exponentielle
avec un « e » symbolisant le « 10 puissance » suivi des chiffres de l’exposant (exemple
14.023e32).
 Ils supportent les mêmes opérations que les entiers. Ils ont une précision finie limitée.
 On peut accéder à ces valeurs minimales et maximales pour les flottants comme ceci

NB : L’import du module math autorise toutes les opérations mathématiques usuelles.


DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.1 Les types de données simples

Les types de données flottants


Le type complex
Les complexes sont écrits en notation cartésienne formée de deux flottants. La partie
imaginaire est suffixée par j. Par exemple

Un module mathématique spécifique (cmath) leur est réservé.

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.1 Les types de données simples

Les données unicodes


 Formes numérales

0 1 2 3 4 5 6 7 8 9 A B C D E F
215 ⅐ ⅑ ⅒ ⅓ ⅔ ⅕ ⅖ ⅗ ⅘ ⅙ ⅚ ⅛ ⅜ ⅝ ⅞ ⅟
216 Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ Ⅺ Ⅻ Ⅼ Ⅽ Ⅾ Ⅿ
217 ⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ ⅺ ⅻ ⅼ ⅽ ⅾ ⅿ
 Exposants et indices
0 1 2 3 4 5 6 7 8 9 A B C D E F
207 ⁰ ⁱ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁺ ⁻ ⁼ ⁽ ⁾ ⁿ
208 ₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₊ ₋ ₌ ₍ ₎
209 ₐ ₑ ₒ ₓ ₔ DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.1 Les types de données simples

Les données unicodes

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.1 Les types de données simples

Opérateurs arithmétiques
Dans le tableau ci-après, sont présentés les symboles utilisés pour les opérations de base.

Opérations Symboles Exemples


Addition + 2 + 5 donne 7
Soustraction - 8 - 2 donne 6
Multiplication * 6 * 7 donne 42
Exponentiation (puissance) ** 5 ** 3 donne 125
Division / 7 / 2 donne 3.5
Reste de division entière % 7 % 3 donne 1
Quotient de division entière // 7 // 3 donne 2
décalage à gauche << 3 << 1 donne 6
décalage à droite >> 3 >> 1 donne 1

NB : Pour la branche 2. de Python, la division de deux entiers se fera comme la division entière.

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.1 Les types de données simples

Opérateurs de comparaison et opérateurs logiques


 Opérateurs de comparaison: soit a= 5 et b=8
Opérations Opérateurs Exemples
inférieur strictement à < a <b donne VRAI
inférieur ou égal à <= a <= b donne VRAI
supérieur strictement à > a > b donne FAUX
supérieur ou égal à >= a >= b donne FAUX
égal à == a == b donne FAUX
différent de != a != b donne VRAI
 En général, deux objets de types différents ne peuvent pas être égaux
 Par contre, des float, des int et des long peuvent être égaux entre eux.

 Opérateurs logiques
Opérations Opérateurs  Autres opérateurs
ET and
Opérations Opérateurs
OU or
même identité ? is
négation not
identité différente ? is not
ET bit à bit &
appartient à ? in
XOR bit à bit ˆ
n’appartient pas à ? not in
OR bit à bit |
complément à 2 ~DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.1 Les types de données simples

les chaînes de caractères : « str »


 On utilise les guillemets ou les simples côtes pour former les chaines sur une seule ligne,
triple guillemet pour les chaines sur plusieurs lignes.
Pour afficher une chaîne de caractères, il faut utiliser la fonction print.
NB : la chaîne de caractères vide s’écrit "" ou ''

 Pour prendre en compte le retour chariot, on utilise le triple quote (tres utile pour la
documentation)

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.1 Les types de données simples

Chaînes de caractères
Méthodes : ce type d’objet possède une quarantaine de méthodes:
 casser, recoller, remplacer
 split(seps[, maxsplit]) : découpe la chaîne en maxsplit morceaux pour constituer une liste de
sous-chaînes. On peut choisir le caractère séparateur (seps) en le fournissant comme
argument, sinon c'est un espace par défaut.
 rsplit() effectue la même chose que split en commençant par la fin
 join(liste) : rassemble une liste de chaînes en une seule (inverse de split()), la chaîne à laquelle
on applique cette méthode est celle qui servira de séparateur (un ou plusieurs caractères)

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.1 Les types de données simples

Chaînes de caractères
Méthodes : ce type d’objet possède une quarantaine de méthodes:
 Rechercher, compter
 find(sub[, start[, stop]]) : renvoie l'indice de la chaîne sub dans la sous-chaîne de
start à stop, sinon renvoie -1
 rfind() effectue le même travail que find en commençant par la fin.
 index(car) et rindex(car) (font de même que find mais produisent une erreur (exception) si
la chaîne n'est pas trouvée) : retrouve l'indice (index) de la première occurrence du
caractère car dans
la chaîne
 count(sch) :
compte le nombre
de sous-chaînes
sch dans la chaîne

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.1 Les types de données simples

les chaînes de caractères : « str »


 Méthodes
 Majuscule, minuscule
 lower() : convertit une chaîne en minuscules
 upper() : convertit une chaîne en majuscules
 capitalize() : Convertit en majuscule seulement la première lettre de la chaîne
 title() : convertit en majuscule l'initiale de chaque mot
 swapcase() : convertit toutes les majuscules en minuscules, et vice-versa

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.1 Les types de données simples

les chaînes de caractères : « str »


 Méthodes
 Remplacer, supprimer
 replace(old[, new[, count]]) : remplace count instances (toutes pas défaut) de old par new
 strip([chars]), lstrip([chars]) et rstrip([chars]) : suppriment toutes les combinaisons
de chars (ou l'espace par défaut) respectivement au début et en fin, au début, ou en fin d'une
chaîne;
 striplines() effectue ce travail de strip avec les caractères de fin de ligne.
 expandtabs([tabsize]) : remplace les tabulations par tabsize espaces (8 par défaut).
 zfill(width) : complète la chaine à gauche avec des 0 jusqu'à une longueur maximale de width
 center(width[, fillchar]), ljust(width[, fillchar]) et rjust(width[, fillchar]) : retournent
respectivement une chaîne centrée, justifiée à gauche ou à droite, de largeur maximale fixée
par le paramètre width complétée par le caractère fillchar (ou par l'espace par défaut)

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.1 Les types de données simples

les chaînes de caractères : « str »


 Méthodes
 True ou False
isupper() et islower() : retournent True si la chaine ne contient respectivement que des
majuscules/minuscules
istitle() : retourne True si seule la première lettre de chaque mot de la chaine est en majuscule
 isalnum(), isalpha(), isdigit(), isnumeric et isspace() : retournent True si la chaine ne contient
respectivement que des caractères alphanumériques, alphabétiques, numériques, numériques(en
format unicode) ou des espaces.
startswith(prefix[, start[, stop]]) et endswith(suffix[, start[, stop]]) testent si la sous-chaîne définie
par start et stop commence respectivement par prefix ou finit par suffix

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.1 Les types de données simples

les chaînes de caractères : « str »


 Opérations et fonctions de base:
len(ch) : renvoie la ongueur de la chaine ch
 float(ch) (resp. int(ch) convertit la chaîne ch en un nombre réel (resp. en entier)
Concaténation de chaines avec + (exemple : var_chaine1 + var_chaine2)
Répétition d’une chaine avec * (exemple : var_chaine * 3)

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.1 Les types de données simples

les chaînes de caractères : « str »


Formatage
On peut effectuer un formatage des chaînes de caractères avec la méthode str.format
Syntaxe: "chaîne de formatage contenant des {}".format(objet1, objet2, ...))

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

Les listes et les opérations et méthodes associées


 Définition et création

 C’est une séquence d’objets


 c'est un objet de type list permet de collecter des éléments de types hétérogènes :
données de type quelconque : int, float, str, bool, etc., ou d'autres listes.
 ce sont des objets mutables (on peut modifier directement dans la mémoire)
 Les éléments d'une liste sont des valeurs de différents types, celles qu'on lui a affectées.
 la liste ne stocke que les références aux objets
 Une liste est créée à l'aide d'une affectation.
 Ses éléments sont entre crochets [.], séparés par des virgules.
 Les éléments d'une liste s'obtiennent grâce à leur indice entre crochets.
 La numérotation des éléments de la liste commence à 0.
 L'indice -1 permet d'obtenir le dernier élément.
 C'est plus simple que liste[len(liste) - 1]. L'indice -2 l'avant-dernier, etc...
 Un indice qui n'est pas compris entre -len(liste) et len(liste)-1 produit une erreur 'IndexError'

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

Les listes et les opérations et méthodes associées


Création

Création de
liste vide

Une liste de listes permet de


constituer un tableau bi-
dimensionnel, tri-dimensionel, etc

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

Les listes et les opérations et méthodes associées


Accès aux données d’une liste

Ici, le premier élément est


une liste, On peut donc
récupérer le 2ème élément
de cette liste interne

Ici, le dernier élément est


une liste, On peut donc
récupérer le dernier
élément de cette liste
interne
DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

Les listes et les opérations et méthodes associées


Création
 Les listes sont des objets modifiables (on dit aussi mutables) : on peut modifier leurs
éléments.
On modifie un élément de la liste en lui affectant une nouvelle valeur (de n'importe quel
type, simple ou complexe).

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

Les listes et les opérations et méthodes associées


Création d’une liste avec la fonction range()
La fonction range() permet d’obtenir des listes toutes faites.
 permet d’obtenir une classe représentant une séquence d’entiers.
 Avec un argument entier n, range(n) retourne la liste des n premiers entiers

Avec deux arguments entiers m,n, range(m,n) retourne la liste des max(0; n − m) en ers
consécutifs qui sont m ⩽ . < n.

Avec trois arguments entiers m, k, n, range(m, n, k)


retourne la liste des entiers de la forme m+k*p, avec
p entiers naturels, qui sont compris entre
DATA SCIENCE m (inclus) et
INSTITUTE/INP-HB n (exclus).
2019
Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

Les listes et les opérations et méthodes associées


 Méthodes
 La méthode liste.sort() On peut vouloir ordonner une liste de nombres dans l’ordre croissant
 La méthode liste.append(.) permet d’ajouter un objet fourni en argument à la liste, dans le sens
d’agrandir la liste d’un élément.
 La méthode liste.extend(itérable) permet d’étendre la liste avec l’itérable en argument
 La méthode liste.pop(index) permet de supprimer l’élément d’indice index et de retourner cet
élément. Si l’index est omis, c’est le dernier élément qui est retourné.
 La méthode liste.clear() permet d’effacer tous les éléments de la liste.
 La méthode liste.insert(index, objet) permet d’insérer objet avant l’élément d’indice index.
 La méthode liste.count(valeur) retourne le nombre d’occurrence de valeur
 La méthode liste.index(valeur) retourne l’indice de la première occurrence de valeur si valeur
existe dans la liste
 Fonctions
 La fonction len(liste) prend en argument une liste et retourne son nombre d‘éléments: longueur
de la liste fournie en argument.
 la fonction sum(liste) prend en argument une liste et retourne, lorsque c'est possible, le résultat
de l'opération '+' sur ses éléments;
 sorted(liste,reverse=False):
 La fonction type(maliste) donne le type de la variable maliste.
 La fonction zip(liste1, liste2, …) fournit un itérable combinant deux ou plusieurs listes en liste de
tuples DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

Les listes et les opérations et méthodes associées


 Méthodes

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

Les listes et les opérations et méthodes associées


Opération sur les listes : Sous-liste
(slicing)
Soit L = [10, 11, 12, 13, 14], une liste
 liste1 = L[i:j] crée une nouvelle liste liste1, sous-liste de
L, dont les éléments sont ceux de L allant de l'indice i
inclus à l'indice j exclus.
On l'appelle une tranche (slice en anglais) de la liste.
 Les indices entre crochets peuvent sortir de la plage
d'indice de la liste : par exemple:
 liste2 = L[0:100] # tranche des indices de 0 à 100

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

Les listes et les opérations et méthodes associées


Opération sur les listes : Sous-liste
(slicing)
Soit L = [10, 11, 12, 13, 14], une liste
 liste1 = L[i:j:k] crée une nouvelle liste liste1, sous-liste
de L, dont les éléments sont ceux de L allant de l'indice
i inclus à l'indice j exclus et de pas k.
 Si i et j non précisés, alors
si Pas > 0 : indice départ = 0 ; indice arrivée = len(L)
si Pas < 0 : indice départ = len(L)-1 : indice arrivée =-len(L)- 1

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

Les listes et les opérations et méthodes associées


Opération sur les listes : Sous-liste (slicing)
Soit L1 = [10, 11, 12, 13, 14], une liste et L2
 L1[i:j] = L2 modifie la liste L1 en remplaçant la section L1[i:j] de L1 par les éléments de L2

Extension de la liste avec


écrasement

Extension de la liste sans


écrasement

Effacement d’éléments
DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

Les listes et les opérations et méthodes associées


Opération sur les listes : Copie de listes
Une liste en python ne contient que l'adresse mémoire où sont stockés ses éléments:
 une belle illustration de pointeur.
 Il faut donc prendre garde à la façon dont python copie une liste

 Exemple 1:
Soient L, une liste et L_prim, une copie de L
Objet en mémoire
L et L_prim sont en effet des
10 11 12 13 14 alias, des étiquettes du même
objet [10, 11, 12, 13, 14].

Objet modifié en mémoire


Donc, effectuer une opération
10 11 12 13 14 15 sur L revient à effectuer une
opération sur L_prim, puisque
dans les deux cas, on effectue
l'opération sur
l’objet [10, 11, 12, 13, 14]
DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

Les listes et les opérations et méthodes associées


Opération sur les listes : Copie de listes
Comment faire une copie avec des emplacements mémoires différents?

 Exemple 2: Utilisation de la fonction list(). Soient L, une liste et L_prim, une copie de L
Objet en mémoire
10 11 12 13 14 L et L_prim pointent sur
deux objets différents mais de
Objet en mémoire mêmes contenus
10 11 12 13 14
Objet modifié en mémoire
10 11 12 13 14 15  Donc, effectuer une
Objet en mémoire opération sur L ne
peut en aucun cas,
10 11 12 13 14 affecter L_prim si L ne
contient que des
objets de types
simples

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

Les listes et les opérations et méthodes associées


Opération sur les listes : Copie de listes
Comment faire une copie avec des emplacements mémoires différents?

 Exemple 2: Utilisation de la fonction list(). Ne marche pas si la liste contient d’autres listes

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

Les listes et les opérations et méthodes associées


Opération sur les listes : Copie de listes
Comment faire une copie avec des emplacements mémoires différents?

 Exemple 3: Utilisation de la fonction copy() du module copy.


Objet en mémoire
10 11 12 13 14 L et L_prim pointent sur
deux objets différents mais de
Objet en mémoire mêmes contenus
10 11 12 13 14
Objet modifié en mémoire
10 11 12 13 14 15  Donc, effectuer une
Objet en mémoire opération sur L ne
peut en aucun cas,
10 11 12 13 14 affecter L_prim

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

Les listes et les opérations et méthodes associées


Opération sur les listes : Copie de listes
Comment faire une copie avec des emplacements mémoires différents?

 Exemple 4: Utilisation de L[:].


Objet en mémoire
10 11 12 13 14 L et L_prim pointent sur
deux objets différents mais de
Objet en mémoire mêmes contenus
10 11 12 13 14
Objet modifié en mémoire
10 11 12 13 14 15  Donc, effectuer une
Objet en mémoire opération sur L ne
peut en aucun cas,
10 11 12 13 14 affecter L_prim

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

Les listes et les opérations et méthodes associées


Opération sur les
listes : Copie de listes
Comment faire une copie de
liste de listes avec des
emplacements mémoires
différents?

Utilisation de la fonction
deepcopy() du module copy

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

Les listes et les opérations et méthodes associées


Opération sur les listes : Copie de listes

Ça
marche

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

les tuples : « tuple »


 Les types list (listes) et str (chaines de caractère) sont des structures de données de
type séquentielles alors que int, float, bool sont des types scalaires.
Tous les objets de type séquentiel ont en commun les opérations ci-dessous:
Opérations Significations
s[i] élément d'indice i de s, avec i un entier
min(s) plus petit élément de s
max(s) Plus grand élément de s
s[i:j] Tranche de i (inclus) à j (exclus), avec i, j sont des entiers
s[i:j:k] Tranche de i à j par pas de k, avec i, j, k sont des entiers
len(s) Longueur de s
x in s True si x est dans s, False sinon
x not in s True si x n'est pas dans s, False sinon
s+t Concaténation de s et t, où s et t sont des objets séquentiels de même type.
s*n, n*s Concatenation de n copies de s, avec n, un entier
s.index(x) Indice de la 1ere occurrence de x dans s
s.count(x) Nombre d'occurrences de xINSTITUTE/INP-HB
DATA SCIENCE dans s 2019
Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

les tuples : « tuple »


 Cependant, les chaines de caractères ne sont pas des objets modifiables.
 Ainsi changer un élément produit une erreur TypeError :

Pour modifier, il faut créer

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
www.kadjo-lambert.c4.fr Dr Lambert KADJO ****** 2014-2015
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

les tuples : « tuple »


 Cependant, les chaines de caractères ne sont pas des objets modifiables.
 en procédant ainsi, la variable conserve son nom, mais change d’identifiant donc pas le
même objet

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
www.kadjo-lambert.c4.fr Dr Lambert KADJO ****** 2014-2015
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

les tuples : « tuple »


 En français t-uplet. Ce sont des objets séquentiels.
 On les définit par la liste de leurs éléments (comme pour une liste mais) entre parenthèses .
 un tuple est une collection d'éléments séparés par des virgules.
 contrairement aux listes, les tuples sont des objets non-modifiables (non-mutables)
 Les parenthèses sont optionnelles
 il faut toujours au moins une virgule pour définir un tuple: il est conseillé de toujours mentionner
une virgule terminale lorsqu'on construit des tuples
 les parenthèses sont obligatoires lors d’une comparaison

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

les tuples : « tuple »

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

les tuples : « tuple »


Construire des tuples à partir de somme de tuples
L’addition de deux tuples donne un nouveau tuple qui est la concaténation des deux tuples opérandes.

Construire des tuples à partir d’une liste avec la fonction tuple()

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

les tuples : « tuple »


Séquence unpacking
Permet d’assigner à une liste de variables, les valeurs du tuple (ou de la liste) suivant l’ordre choisi

Echange

NB: les contraintes fixées :


le terme à droite du signe = est un iterable (tuple, list, str, etc.),
le terme à gauche soit écrit comme un tuple (généralement) ou une liste,
DATA SCIENCE INSTITUTE/INP-HB 2019
les deux termes ont la même longueur Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

les dictionnaires : « dict »


 Ce sont des structures de données qui ne sont pas séquentielles (non ordonnées)
 un élément n'est plus repéré à l’aide d'un indice (un nombre entier) mais à l'aide d'un
nom constituant sa clef.
 cette clé pourra être alphabétique, numérique ou fonctions, éléments d’une classe, etc.
(mais pas une liste python sauf sous certaines conditions). Les clés peuvent être de
presque n’importe quel type : entiers,
 les éléments mémorisés dans un dictionnaire peuvent être de n’importe quel type (des
nombres, des chaînes, des listes, des tuples, des dictionnaires, et même aussi des
fonctions)
 Cette structure de donnée s'appelle en python un dictionnaire et dans d'autres langages
un enregistrement.

NB: Les crochets délimitent les listes, les parenthèses délimitent les tuples et les accolades
délimitent les dictionnaires.

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

les dictionnaires : « dict »


 Création d’un dictionnaire
 un dictionnaire apparaît dans la syntaxe Python sous la forme d’une série d’éléments
séparés par des virgules, le tout étant enfermé entre deux accolades. Chacun de ces
éléments est lui-même constitué d’une paire d’objets : un index (la clé) et une valeur,
séparés par un double point: on parle de la paire clé-valeur.

Créons ce dictionnaire
Cote_d_Ivoire = {'Capitale' : ‘Yamoussoukro', 'Superficie' : 322462, 'Population' : 25000000, 'Langue' : 'Français‘}

Création d’un dictionnaire vide

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

les dictionnaires : « dict »


 Manipulation d’un dictionnaire

Accès à un élément se fait à l'aide de sa clef


L'accès à un élément se fait à l'aide de sa clef

Ajout d’un élément dans un dictionnaire


Pour ajouter de nouveaux éléments à un dictionnaire, il suffit de créer une nouvelle paire
clé-valeur.

 Suppression d’un élément d’un dictionnaire


Pour supprimer un élément d’un dictionnaire, il suffit d’utiliser l’instruction intégrée del().

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

les dictionnaires : « dict »


 Manipulation d’un dictionnaire

La taille d’un dictionnaire

 différentes méthodes sur les dictionnaires


 Cote_d_Ivoire.keys() : renvoie la séquence des clés utilisées dans le dictionnaire Cote_d_Ivoire.
Cette séquence peut être utilisée telle quelle dans les expressions, ou convertie en liste ou en tuple
si nécessaire, avec les fonctions intégrées correspondantes list()et tuple() :

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

les dictionnaires : « dict »


 Manipulation d’un dictionnaire

 Différentes méthodes sur les dictionnaires

Cote_d_Ivoire.values() : retourne la liste des valeurs du dictionnaire Cote_d_Ivoire

Cote_d_Ivoire.items() retourne la liste des champs (key,value) de Cote_d_Ivoire

 Cote_d_Ivoire.copy() retourne une copie du dictionnaire telle que vue avec les listes.

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

les dictionnaires : « dict »


 Manipulation d’un dictionnaire

 liste et tuple en dictionnaire et inversement

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

les ensembles: « set »


 Un set est un ensemble, c’est-à-dire une collection non ordonnée d’éléments uniques
immuables

 On crée un objet de type set en lui passant en paramètre une liste d'éléments qui sont
dans l'ensemble.
 Pour créer un set

Méthodes

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

les ensembles: « set »


Méthodes et fonctions built-in
 ens1.add(valeur) : ajoute valeur au set ens1
 ens1.remove(valeur) : enlève valeur du set ens1
 ens1.update(liste1) : ajoute chaque élément de la liste liste1 au set ens1. C’est
l’équivalent de extend du type list.
 ens2 =frozenset(ens1): crée un ensemble immuable appelé ens2 à partir de ens1

Opérations
 des opérations d’appartenance avec in

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

les ensembles: « set »

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

les ensembles: « set »

Test d’Inclusion

Union de deux ensembles

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.2 Les types évolués

les ensembles: « set »


intersection

Différence

Différence symétrique

Transformer un ensemble en liste


DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.3Références partagées

Définition et illustration1
 On parle de référence partagée, lorsqu’au moins 2 variables référencent le même
objet.
 cela ne cause aucun problème lorsque l’objet est immuable
 lorsque l’objet référencé est un mutable, il y a ce que l’on appelle effet de bord

Variables Objet

1
21
temp int

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.3Références partagées

Illustration 1
Variables Objet

0
21
temp int

1
'data sce'
str

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.3Références partagées

illustration1
Variables Objet

temp

2
'data sce'
ecole str

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.3Références partagées

illustration2
Variables Objet

2
21
temp int

ecole

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.3Références partagées

illustration2
Variables Objet

1
21
temp int

1
'data sce'
ecole str

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.3Références partagées

illustration3
Variables Objet

21 'data sce'
temp

[ . , .]

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.3Références partagées

illustration3
Variables Objet

21 'data sce'
temp

[ . , .]
ecole

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.3Références partagées

illustration3
Variables Objet

21 'data sce'
temp

[ . , .]
ecole

'master'

ecole voit le même


objet que temp
DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.3Références partagées

Illustration4: shallow copy


Variables Objet

21 'data sce'
temp

[ . , .] [ . , .]
ecole

Copie de premier niveau

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.3Références partagées

Illustration4: shallow copy


Variables Objet

21 'data sce'
temp

[ . , .] [ . , .]
ecole

'master'

Copie de premier niveau

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.3Références partagées

Illustration4: shallow copy


Variables Objet

21 [.] 'data sce'


temp

[ . , .] [ . , .]
ecole

Copie de premier niveau

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.3Références partagées

Illustration4: shallow copy


Variables Objet

21 [.] 'data sce'


temp

[ . , .] [ . , .]
ecole

'master'

Copie de premier niveau


Effet de bord

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.3Références partagées

Illustration4: deepcopy
Variables Objet

21 [.] 'data sce'


temp

[ . , .] [ . , .]
ecole

[.]

Copie en profondeur avec deepcopy


DATA SCIENCE INSTITUTE/INP-HB 2019
Dr Lambert KADJO
3- TYPES DE BASE ET RÉFÉRENCES PARTAGÉES 3.3Références partagées

Illustration4: deepcopy
Variables Objet

21 [.] 'data sce'


temp
'master'

[ . , .] [ . , .]
ecole

[.]

Copie en profondeur avec deepcopy

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
FIN
BLOC1

DATA SCIENCE INSTITUTE/INP-HB 2019


Dr Lambert KADJO
www.kadjo-lambert.c4.fr

Vous aimerez peut-être aussi