Telechargé par wissal.hajji.2001

Présentation Python : Ingénierie de Conception et Développement

publicité
Licence LICDA : Ingénierie de Conception et
Développement d’Applications
Fatima RAFII ZAKANI
[email protected]
2022/2023
Plan
Introduction
PYTHON EST-IL UN LANGAGE INTERPRÉTÉ ?
Console Python
Variables
Declaration
Type
Identité
Operations sur les variables
Suppression
Lecture d’une saisie
Plan
Formatage de chaı̂ne de caractère
Commentaires
Structures conditionnelles
if
if ... else
if ... elif ... else
pass
Plan
Structures itératives
while
while ... break
while ... continue
while ... else
for
for ... break ... else
Collections (tableaux dynamiques)
List
Tuple
Set
Dictionary
Variable (objet) muable (mutable)
Plan
Fonctions
Déclaration et appel
Fonction récursive
Fonction à multi-valeurs de retour
Fonction retournant une fonction
Paramètres avec valeur par défaut
Opérateur *
Opérateur **
Variables locales et globales
Fonction Lambda
Introduction
Python
Python ?
Langage de programmation

Orienté objet et procédural

A typage dynamique

Fortement typé (Impossible de concaténer une chaı̂ne et un entier
sans convertir l’entier en chaın
ˆ e)
Première version créée par Guido van Rossum en 1991 puis
par Python Software Foundation depuis la version 2 en 2001
Introduction
Python
Python, pourquoi ?
Langage de haut niveau
 Qui doit sa popularité à sa polyvalence, mais aussi à sa flexibilité et sa facilité
d’utilisation.

Il est un langage de programmation relativement simple à comprendre et donc
à apprendre.

Considéré comme le langage le plus apprécié par les débutants en
programmation, qui le préfèrent aujourd’hui à Java.

Gestion automatique et dynamique de mémoire : ramasse-miettes, pas de
pointeur, pas d’allocation de mémoire...système de gestion d’exceptions
 Disposant d’une bonne documentation, des supports videos, plusieurs
exemples sur internet
Introduction
Python
c
I
H
L très évolués et
Développement Web : disposant des frameworks
E
U
très populaires comme Django
MO
L
E Machine Learning et Data Science
Data : très utilisé en e
Big
f Data,
r
h
c
Script : instructions
c A simples à exécuter dans une console
Python : multi-domaine



Introduction
Python
Compilation VS Interprétation
Concernant les langages de programmation on retrouve deux
catégories principales :
- Langages compilés
- Langages interprétés.
Introduction
Python
Python fait partie des langages interprété
Qu'est-ce qu'un langage interprété ?
- Un langage interprété est un langage qui est lu ligne par ligne par
un interpréteur.
- L'interpréteur va passer à travers chaque ligne du code Python
pour le traduire en langage machine.
- C'est donc tout l'inverse des langages dits compilés qui nécessitent
un processus appelé compilation, qui va compiler le code afin
de générer un exécutable.
Introduction
Python
Compilation VS Interprétation
Un langage interprété, c'est donc tout d'abord un langage qui a besoin
d'un interpréteur pour fonctionner.
Dans le cas de Python on parle donc de l'interpréteur Python.
Introduction
Python
L'interpréteur Python
L'interpréteur Python, c'est l'application avec laquelle vous allez
exécuter votre script Python.
Sur Windows, c'est l'exécutable python.exe qui se trouve à l'intérieur
du dossier dans lequel vous avez installé Python (par exemple C:
\Python37\python.exe).
Sur macOS ou Linux, ce fichier se trouve généralement dans
/usr/local/bin/python3.7.
Compilation
Python
Intrerpretation
Python
Intrerpretation
Python
Compilation : avantage
Compilation : inconvénient
Plus rapide.
Recompiler après chaque modification.
Interprétation : avantage
Interprétation : inconvénient
Vue immédiate sur le code et apporter
des modifications instantanément.
Exécution 10 à 100 fois plus lente.
Console Python
Python
Consoles Python

Allez dans la barre de recherche de Windows Cherchez :
- Python 3.8 et ouvrez la console (invite de commandes), ou
- IDLE Python 3.8 et ouvrez la console (Power Shell)
c
Introduction
Python
L'interpréteur Python
On reconnaît qu'on est dans un interpréteur Python interactif grâce
aux trois signes plus grand que (>>>).
Pour sortir de l'interpréteur Python, on utilise la commande exit().
Introduction
Python
Quelques versions de Python
Python 1 (sortie en 1991)
Python 1.5 (sortie en avril 1999)
Python 1.6 (sortie en septembre 2000)
I
ELH
Python 2.0 (sortie en octobre 2000)
U
O
LM
Python 2.1 (sortie en avril 2001)
Python 2.6 (sortie en octobre 2008)
c Achref
Python 2.7 (sortie en juillet 2010)
E
Python 3.0 (sortie en décembre 2008)
Python 3.1 (sortie en juin 2009)
Python 3.7 (sortie en janvier 2018)
Python 3.8 (sortie en octobre 2019)
Python 3.9 (sortie en octobre2020)
Python 3.10 (sortie en octobre2021)
c
Introduction
Introduction
Python : téléchargement
https://www.python.org/downloads/
Python
Les r ègles de nommage




c
I
H
L (packages) :
Variables, fonctions, méthodes, fichiers (modules) et
Edossiers
U
snake_case
O
M
L
Constantes : snake_case (All E
Caps, en français tout en majuscule en séparant
f
e
r
les mots par des underscores)
h
c
A
Modules c
et packages, on conseille d’utiliser des noms courts.
Classes et exceptions : PascalCase
Packages, on d éconseille d’utiliser les underscores
Normes des instructions Python
Python
Normes des instructions Python

80 caractères maximum par ligne.

4 espaces pour l’indentation (pas de tabulation).

2 lignes de séparations entre les différents éléments.

1 ligne vide à la fin de chaque fichier de code.

1 espace après : mais pas avant

1 espace avant et après chaque opérateur

1 instruction par ligne
Console Python
Python
Remarques en mode console
Une instruction Python commence par >>>
Le résultat de l’instruction est affiché à la ligne sans >>>
Afficher Hello world en Python
>>> print("Hello world")
Hello world
Console Python
Python
Console simple vs IDLE (Integrated Development and Learning Environment)
Note ! : IDLE n'est pas un interpréteur Python en tant que tel, c'est un environnement de
développement intégré avec Python qui utilise la librairie graphique Tkinter.
IDLE = console + coloration du code + auto-complétion + indentation automatique + ....
Console Python
Python
En utilisant une console Python, on peut effectuer des opérations
arithmétiques
>>> 3+2
5
Console Python
Python
En utilisant une console Python, on peut effectuer des opérations
arithmétiques
>>> 3+2
5
Ou des tests logiques
>>> 3+2>1+7
False
Variables
Python
Une variable ?
Un pointeur vers une zone mémoire
Permettant de stocker une ou plusieurs données
Pouvant avoir plusieurs valeurs différentes dans un programme
Variables
Python
Une variable ?
Un pointeur vers une zone mémoire
Permettant de stocker une ou plusieurs données
Pouvant avoir plusieurs valeurs différentes dans un programme
Python est un langage de programmation fortement typé, mais
Pas de type à préciser pour les variables
Une variable peut changer de type
Impossible de concaténer une chaı̂ne et un nombre sans conversion
Variables
Python
Caractéristiques d’une variable
Son nom dans le programme
Son type
Son identité
Variables
Python
Pour déclarer une variable
>>> x = 2
Déclaration
Variables
Python
Pour déclarer une variable
>>> x = 2
Pour afficher une variable
>>> x
2
Déclaration
Variables
Python
Pour déclarer une variable
>>> x = 2
Pour afficher une variable
>>> x
2
Pour utiliser une variable
>>> x + 3
5
Déclaration
Variables
Déclaration
Python
Pour déclarer plusieurs variables et leur affecter une même valeur
>>> a = b = c = 1
Variables
Déclaration
Python
Pour déclarer plusieurs variables et leur affecter une même valeur
>>> a = b = c = 1
Pour afficher les valeurs respectives des variables précédentes
>>> a, b, c
(1, 1, 1)
Variables
Déclaration
Python
Pour déclarer plusieurs variables et leur affecter une même valeur
>>> a = b = c = 1
Pour afficher les valeurs respectives des variables précédentes
>>> a, b, c
(1, 1, 1)
Pour déclarer plusieurs variables et leur affecter des valeurs différentes
>>> d, e, f = 1, 2, "bonjour"
Variables
Type
Python
Une variable peut changer de type
>>> x = ’bonjour’
>>> type(x)
<class ’str’>
c
Une variable peut changer de type
>>> x = 1
Pour déterminer le type d’une variable
>>> type(x)
<class 'int'>
c
Variables
Python
Exemple avec les booléens
>>> type(True)
<class ’bool’>
Type
Variables
Python
Exemple avec les booléens
>>> type(True)
<class ’bool’>
Exemple avec les nombres réels
>>> type(2.8)
<class ’float’>
Type
Variables
Type
Python
Exemple avec les booléens
>>> type(True)
<class ’bool’>
Exemple avec les nombres réels
>>> type(2.8)
<class ’float’>
Exemple avec les nombres complexes
>>> type([1, 2])
<class ’list’>
Variables
Type
Python
Pour récupérer le nom du type sous forme d’une chaı̂ne de
caractères
>>> val = 2
>>> val.__class__.__name__
’int’
>>> type(val).__name__
’int’
c
Variables
Type
Python
Pour tester si une valeur est de certain type
>>> isinstance(True, bool)
True
Variables
Type
Python
Pour tester si une valeur est de certain type
>>> isinstance(True, bool)
True
Exemple 2
>>> isinstance(2.5, int)
False
Variables
Type
Python
Pour tester si une valeur est de certain type
>>> isinstance(True, bool)
True
Exemple 2
>>> isinstance(2.5, int)
False
Exemple 3
>>> isinstance(2, float)
False
Variables
Type
Python
Le deuxième paramètre peut être un tuple
>>> isinstance(2.5, (int, float))
True
c
Variables
Type
Python
Le deuxième paramètre peut être un tuple
>>> isinstance(2.5, (int, float))
True
Exemple 2
c
>>> isinstance("bonjour", (int, float))
False
c
Variables
Identité
Python
Identité d’une variable
Constante unique pour chaque variable (objet)
Deux variables ayant la même identité = deux variables
partageant la même valeur
Variables
Python
Exemple
>>> x = 2
>>> y = 2
>>> x,y
(2, 2)
>>> id(x), id(y)
(1571223488, 1571223488)
c
Identité
Variables
Python
Opérations sur les nombres
= : affectation
+ : addition
- : soustraction
* : multiplication
** : puissance
/ : division
// : division entière
% : reste de la division
Opérations sur les variables
Variables
Python
Exemples
>>>
7
>>>
10
>>>
2.5
>>>
2
>>>
25
>>>
1
5+2
5*2
5/2
5 // 2
5 ** 2
5%2
c
Opérations sur les variables
Variables
Opérations sur les variables
Python
Quelques opérations sur les variables numériques
i += 2 ⇒ i = i + 2
i -= 2 ⇒ i = i - 2
i *= 2 ⇒ i = i * 2
i /= 2 ⇒ i = i / 2
i %= 2 ⇒ i = i % 2
i //= 2 ⇒ i = i // 2
i **= 2 ⇒ i = i ** 2
...
Fichiers de code Python
Python
Quel IDE (Environnement de développement intégré) ?
PyCharm (Pour télécharger :
https://www.jetbrains.com/fr-fr/pycharm/download/#section=windows)
Visual Studio Code (À ne pas confondre avec Visual Studio)
Jupyter (https://jupyter.org/)
...
Fichiers de code Python
Python
Démarche
Créez un projet cours-python
Dans cours-python, créez un fichier main.py
Fichiers de code Python
Python
Démarche
Créez un projet cours-python
Dans cours-python, créez un fichier main.py
Contenu de main.py
msg = "Hello World"
print(msg)
Fichiers de code Python
Python
Démarche
Créez un projet cours-python
Dans cours-python, créez un fichier main.py
Contenu de main.py
msg = "Hello World"
print(msg)
Pour exécuter, cliquez sur le triangle vert (en haut à droite)
Variables
Opérations sur les variables
Python
Exercice
Écrire un script Python qui permet de permuter le contenu de deux
variables sans utiliser une troisième.
Variables
Python
Première solution
>>> a = 2
>>> b = 3
>>> a = a + b
>>> b = a - b
>>> a = a- b
>>> a , b
>>> (3,2)
Opérations sur les variables
Variables
Opérations sur les variables
Python
Première solution
>>> a = 2
>>> b = 3
>>> a = a + b
>>> b = a - b
>>> a = a- b
>>> a , b
>>> (3,2)
Deuxième solution (on peut également entourer a,b par des () ou [])
>>>
>>>
>>>
>>>
(3,
a =2
b =3
a, b = b, a
a, b
2)
Variables
Opérations sur les variables
Considérons les deux chaı̂nes de caractères suivantes
str1, str2 = ’bon’, "jour"
Variables
Opérations sur les variables
Considérons les deux chaı̂nes de caractères suivantes
str1, str2 = ’bon’, "jour"
Utilisons l’opérateur + pour concaténer deux chaı̂nes de caractère
>>> str3 = str1 + str2
>>> str3
’bonjour’
c
Variables
Opérations sur les variables
Considérons les deux chaı̂nes de caractères suivantes
str1, str2 = ’bon’, "jour"
Utilisons l’opérateur + pour concaténer deux chaı̂nes de caractère
>>> str3 = str1 + str2
>>> str3
’bonjour’
Utilisons l’opérateur * pour répéter un motif plusieurs fois
>>> str3 * 4
’bonjourbonjourbonjourbonjour’
c
c
Variables
Opérations sur les variables
Considérons les deux chaı̂nes de caractères suivantes
str1, str2 = ’bon’, "jour"
Utilisons l’opérateur + pour concaténer deux chaı̂nes de caractère
>>> str3 = str1 + str2
>>> str3
’bonjour’
c
Utilisons l’opérateur * pour répéter un motif plusieurs fois
>>> str3 * 4
’bonjourbonjourbonjourbonjour’
c
Multiplier une chaı̂ne de caractères par une deuxième chaı̂ne déclenche une erreur
>>> str3 * "4"
TypeError: can’t multiply sequence by non-int of type ’str’
Variables
Opérations sur les variables
Python
Pour créer une chaı̂ne de caractères dont la valeur est définie sur
plusieurs lignes
>>> msg=’hello\
... world’
>>> msg
’helloworld’
c
Variables
Opérations sur les variables
Python
Pour créer une chaı̂ne de caractères dont la valeur est définie sur
plusieurs lignes
>>> msg=’hello\
... world’
>>> msg
’helloworld’
On peut également utiliser les """
c
>>> msg2="""bonjour
... tout
... le
... monde"""
>>> msg2
’bonjour\ntout\nle\nmonde’
c
Variables
Opérations sur les variables
Python
Cette opération génère une erreur
>>> 2 + ’3’
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: ’int’ and ’str’
Variables
Opérations sur les variables
Python
Cette opération génère une erreur
>>> 2 + ’3’
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: ’int’ and ’str’
Pour additionner un nombre et une chaı̂ne de caractère, on peut soit convertir la
chaı̂ne en entier
>>> 2 + int (’3’)
5
Variables
Opérations sur les variables
Python
Cette opération génère une erreur
>>> 2 + ’3’
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: ’int’ and ’str’
c
Pour additionner un nombre et une chaı̂ne de caractère, on peut soit convertir la
chaı̂ne en entier
>>> 2 + int(’3’)
5
Ou faire la concatenation
>>> str(2) + ’3’
’23’
Variables
Opérations sur les variables
Python
Quelques fonctions de conversion en Python
float() : convertit en réel la valeur passée en paramètre si elle
est numérique, une erreur sera générée sinon.
int() : convertit en entier la valeur passée en paramètre si elle
est numérique, une erreur sera générée sinon.
str() : convertir en chaı̂ne de caractère la valeur passée en
paramètre
bool(x) : retourne False si x contient le nombre 0, [], (), {} ou
False, True sinon.
...
Variables
Suppression
Python
Pour supprimer une variable
>>> del x
c
Variables
Suppression
Python
Pour supprimer une variable
>>> del x
c
Demander la valeur d’une variable supprimée génère une erreur
>>> x
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name ’x’ is not defined
c
Lecture d’une saisie
Python
Pour lire une saisie de console (une chaı̂ne de caractère)
>>> x = input()
Lecture d’une saisie
Python
Pour lire une saisie de console (une chaı̂ne de caractère)
>>> x = input()
On peut ajouter un message indicatif
>>> x = input(’Quel est votre nom ?\n’)
Lecture d’une saisie
Python
Pour lire une saisie de console (une chaı̂ne de caractère)
>>> x = input()
On peut ajouter un message indicatif
>>> x = input(’Quel est votre nom ?\n’)
Pour lire une saisie numérique (entier par exemple)
>>> num1 = int(input(’saisir un nombre’))
Formatage de chaı̂ne de caractère
Python
HI
L
E
Écrire un script Python qui demande à l’utilisateur
de saisir deux
U
O
nombres et affiche le résultat de la somme
comme
suit : la somme
M
L
de 2 et 3 est : 5
f E´ par l'utilisateur
e
r
saisies
h
2 et 3 etant des valeurs
Ac
Exercice
Formatage de chaı̂ne de caractère
Python
Une première solution consiste à faire
x = int(input(’Première valeur’))
y = int(input(’Deuxième valeur’))
resultat = x + y
print(’la somme de’, x, ’et’, y, ’est :’, resultat)
c
Formatage de chaı̂ne de caractère
Python
Une première solution consiste à faire
x = int(input(’Première valeur’))
y = int(input(’Deuxième valeur’))
resultat = x + y
print(’la somme de’, x, ’et’, y, ’est :’, resultat)
Remarque
Python ajoute un espace après chaque paramètre de la fonction
print().
Formatage de chaı̂ne de caractère
Python
Pour modifier le séparateur, on utilise l’option sep (ici c’est -)
x = int(input(’Première valeur’))
y = int(input(’Deuxième valeur’))
resultat = x + y
print(’la somme de’, x, ’et’, y, ’est :’, resultat,
sep="-")
Formatage de chaı̂ne de caractère
Python
Solution avec le formatage de la chaı̂ne de sortie en utilisant %
comme en langage C
x = int(input(’Première
y = int(input(’Deuxième
resultat = ’la somme de
print(resultat % (x, y,
valeur’))
valeur’))
%d et %d est : %d’
x + y))
Formatage de chaı̂ne de caractère
Python
Solution avec le formatage de la chaı̂ne de sortie en utilisant %
comme en langage C
x = int(input(’Première
y = int(input(’Deuxième
resultat = ’la somme de
print(resultat % (x, y,
c
Autres options
%s pour str
%f pour float
...
valeur’))
valeur’))
%d et %d est : %d’
x + y))
Formatage de chaı̂ne de caractère
Python
Solution avec le formatage de la chaı̂ne de sortie
x = 5
y = 2
resultat = ’la somme de {} et {} est : {}’
print(resultat.format(x, y, x + y))
Formatage de chaı̂ne de caractère
Python
Solution avec le formatage de la chaı̂ne de sortie
x = 5
y = 2
resultat = ’la somme de {} et {} est : {}’
print(resultat.format(x, y, x + y))
x = 5
y = 2
resultat = ’la somme de {1} et {0} est : {2}’
print(resultat.format(x, y, x + y))
Formatage de chaı̂ne de caractère
Python
Solution avec le formatage de la chaı̂ne de sortie
x = 5
y = 2
resultat = ’la somme de {} et {} est : {}’
print(resultat.format(x, y, x + y))
x = 5
y = 2
resultat = ’la somme de {1} et {0} est : {2}’
print(resultat.format(x, y, x + y))
x = 5
y = 2
resultat = ’{} / {} est : {:.2f}’
print(resultat.format(x, y, x + y))
Formatage de chaı̂ne de caractère
Python
Un raccourci de l’écriture précédente (disponible depuis
Python 3.6)
x = int(input(’Première valeur’))
y = int(input(’Deuxième valeur’))
print(f’la somme de {x} et {y} est : {x + y}’)
Commentaires
Python
Commentaire
texte ignoré par le compilateur
Commentaires
Python
Commentaire
texte ignoré par le compilateur
Syntaxe
# le texte suivant sera ignoré
Commentaires
Python
Commentaire de documentation (DocString)
pouvant être récupéré
pouvant être multi-lignes
généralement attaché à un élément Python
Commentaires
Python
Commentaire de documentation (DocString)
pouvant être récupéré
pouvant être multi-lignes
généralement attaché à un élément Python
Syntaxe
"""message sur plusieurs lignes
attaché à un élément
décrivant un élément Python"""
Structures conditionnelles
Python
Structures conditionnelles
if ... [[elif ...] else ...]
Pas de switch ... case en Python
Structures conditionnelles
if
Python
Exécuter si une condition est vraie
if (condition[s]):
# instruction[s]
c
Structures conditionnelles
if
Python
Exécuter si une condition est vraie
if (condition[s]):
# instruction[s]
c
Remarques
Les parenthèses ne sont pas obligatoires
L’indentation est obligatoire pour les instructions de if
Pour les conditions, on utilise les opérateurs de comparaison
Structures conditionnelles
if
Python
Exemple
x = 10
if (x > 0):
print(str(x) + " est positif")
c
Structures conditionnelles
if
Python
Exemple
x = 10
if (x > 0):
print(str(x) + " est positif")
One-line if
x = 10
if (x > 0): print(str(x) + " est positif")
c
Structures conditionnelles
Python
Opérateurs de comparaison
== : pour tester l’égalité
!= : pour tester l’inégalité
> : supérieur à
< : inférieur à
>= : supérieur ou égal à
<= : inférieur ou égal à
if
Structures conditionnelles
if ...
else
Python
Exécuter un premier bloc si une condition est vraie, un deuxième
sinon (le bloc else)
if (condition[s]):
# instruction[s]
else:
# instruction[s]
Structures conditionnelles
Exemple
x = -10
if (x > 0):
print(str(x) + " est positif")
else:
print(str(x) + " est négatif")
if ...
else
Structures conditionnelles
if ...
else
Exemple
x = -10
if (x > 0):
print(str(x) + " est positif")
else:
print(str(x) + " est négatif")
One-line if else
z = f"{x} est positif" if (x > 0) else f"{x} est négatif"
print(z)
Structures conditionnelles
if ...
else
Exemple
x = -10
if (x > 0):
print(str(x) + " est positif")
else:
print(str(x) + " est négatif")
One-line if else
z = f"{x} est positif" if (x > 0) else f"{x} est négatif"
print(z)
Ou en plus simple
z = f"{x} est" + (" positif" if (x>0)
print(z)
else " négatif")
Structures conditionnelles
if ...
elif ...
else
Python
On peut enchaı̂ner les conditions avec elif (et avoir un troisième
bloc voire ... un nième)
if (condition[s]):
# instruction[s]
elif (condition[s]):
# instruction[s]
...
else:
# instruction[s]
c
Structures conditionnelles
Exemple
x = 0
if (x > 0):
print(str(x) + " est positif")
elif (x == 0):
print(str(x) + " est nul")
else:
print(str(x) + " est négatif")
if ...
elif ...
else
Structures conditionnelles
if ...
elif ...
else
Exemple
x = 0
if (x > 0):
print(str(x) + " est positif")
elif (x == 0):
print(str(x) + " est nul")
else:
print(str(x) + " est négatif")
One-line if elif else
x=0
z = f"{x} est positif " if (x > 0) else f"{x} est null" if ( x==0 ) else
f"{x}est negatif"
print(z)
Structures conditionnelles
if ...
elif ...
else
Exemple
x x= =0 0
ifif(x(x> >0):
0):
print(str(x)
print(str(x)+ +" "est
estpositif")
positif")
elif
elif(x(x====0):
0):
print(str(x)
print(str(x)+ +" "est
estnul")
nul")
else:
else:
print(str(x)
print(str(x)+ +" "est
estnégatif")
négatif")
One-line if elif else
x=0
z = f"{x} est positif " if (x > 0) else f"{x} est null" if ( x==0 ) else
f"{x}est negatif"
print(z)
One-line if elif else
x=0
z = f"{x} est " +(" positif" if (x > 0) else " null" if (x==0) else " negatif")
print(z)
Structures conditionnelles
Python
Opérateurs logiques
and : et
or : ou
not : non
if ...
elif ...
else
Structures conditionnelles
if ...
elif ...
else
Python
Opérateurs logiques
and : et
or : ou
not : non
Tester plusieurs conditions (en utilisant des opérateurs logiques)
if (condition1 and
# instructions
[else ...]
condition2 or condition3):
Structures conditionnelles
if ...
elif ...
else
Python
Exercice
Écrire un script Python qui
demande à l’utilisateur de saisir deux valeurs numériques
affiche le signe du résultat de la multiplication sans calculer le
produit
Structures conditionnelles
pass
Python
Exemple de solution
a = int(input("Entrer la premiere valeur : "))
b = int(input("Entrer la deuxieme valeur : "))
if (a > 0 or b < 0) and (a < 0 or b > 0):
print(f"le resultat de la multiplication de {a}et{b}
est positif")
elif (a == 0 or b == 0):
print(f"le resultat de la multiplication de {a}et{b}
est null"
else:
print(f"le resultat de la multiplication de {a}et{b}
est negatif")
Structures conditionnelles
pass
Python
Si, pour certains conditions, on n’a rien à faire, on peut utiliser
pass
x = 0
if (x > 0):
print(str(x) + " est positif")
elif (x == 0):
pass
else:
print(str(x) + " est négatif")
c
Structures itératives
Python
Structures itératives
while : pour un nombre d’itérations connu ou inconnus
for : pour un nombre d’itérations connu
Pas de do ... while en Python
Structures itératives
while
Python
Boucle while : à chaque itération on teste si la condition est
vraie avant d’accéder aux traitements
while condition[s] :
# instruction[s]
Structures itératives
while
Python
Boucle while : à chaque itération on teste si la condition est
vraie avant d’accéder aux traitements
while condition[s] :
# instruction[s]
Attention aux boucles infinies, vérifier que la condition d’arrêt sera bien
atteinte après un certain nombre d’itérations.
Structures itératives
while
Python
Exemple
i = 0
while i < 5:
print(i)
i += 1
c
Structures itératives
while
Python
Exemple
i = 0
while i < 5:
print(i)
i += 1
Le résultat est
0
1
2
3
4
c
c
Structures itératives
while
Python
Pour tout afficher sur une seule ligne
i = 0
while i < 5:
i += 1
print(i, end=" ")
Structures itératives
while
Python
Pour tout afficher sur une seule ligne
i = 0
while i < 5:
end=" ")
iprint(i,
+= 1
print(i,
end="
")
i += 1
Le résultat est
1 2 3 4 5
c
Structures itératives
while ...
break
Python
Exemple avec break
i = 0
while i < 5:
print(i)
if i == 2:
break
i += 1
c
Structures itératives
while ...
break
Python
Exemple avec break
i = 0
while i < 5:
print(i)
if i == 2:
break
i += 1
Le résultat est
0
1
2
c
Structures itératives
while ...
continue
Python
Exemple avec continue
i = 0
while i < 5:
i += 1
if i == 2:
continue
print(i)
c
Structures itératives
while ...
continue
Python
Exemple avec continue
i = 0
while i < 5:
i += 1
if i == 2:
continue
print(i)
Le résultat est
1
3
4
5
c
Structures itératives
while ...
else
Python
while ... else
La clause else n’est exécutée que lorsque la condition de while
devient fausse.
Si on sort de la boucle ou si une exception est levée, le bloc else
ne sera pas executée.
Structures itératives
while ...
else
Python
Exemple avec while ... else
i = 0
while i < 5:
i += 1
print(i)
else:
print("i est égal à 5")
c
Structures itératives
while ...
else
Python
Exemple avec while ... else
i = 0
while i < 5:
i += 1
print(i)
else:
print("i est égal à 5")
Le résultat est
1
2
3
4
5
i est égal à 5
c
Structures itératives
Python
Boucle for
for elt in iterable:
# instruction[s]
for
Structures itératives
for
Python
Boucle for
for elt in iterable:
# instruction[s]
Une boucle for permet d’itérer sur les structures suivantes
List
Tuple
Set
Dictionary
String
Range
Structures itératives
for
Python
Pour parcourir une chaı̂ne de caractères
chaine = "bonjour"
for elt in chaine:
print(elt)
c
Structures itératives
for
Python
Pour parcourir une chaı̂ne de caractères
chaine = "bonjour"
for elt in chaine:
print(elt)
Le résultat est
b
o
n
j
o
u
r
c
Structures itératives
for
Python
Et si on a besoin d’afficher des valeurs (de 0 à 4 par exemple)
sans avoir d’itérable, on utilise la fonction range
for i in range(5):
print(i)
c
Structures itératives
for
Python
Et si on a besoin d’afficher des valeurs (de 0 à 4 par exemple)
sans avoir d’itérable, on utilise la fonction range
for i in range(5):
print(i)
Le résultat est
0
1
2
3
4
c
Structures itératives
for
Python
On peut aussi modifier la valeur initiale (par défaut 0)
for i in range(2, 5):
print(i)
c
Structures itératives
for
Python
On peut aussi modifier la valeur initiale (par défaut 0)
for i in range(2, 5):
print(i)
Le résultat est
2
3
4
c
Structures itératives
for
Python
Il est possible de modifier le pas (par défaut 1)
for i in range(0, 6, 2):
print(i)
c
Structures itératives
for
Python
Il est possible de modifier le pas (par défaut 1)
for i in range(0, 6, 2):
print(i)
Le résultat est
0
2
4
c
Structures itératives
for
Python
Comme pour while, il est possible d’utiliser
pass
continue
break
else
Structures itératives
for ...
break ...
else
Python
for ... break ... else
Si le compilateur rencontre un break dans la boucle for, le else
ne sera pas exécuté.
S’il ne rencontre pas break dans la boucle for, la partie else
sera executée.
Collections (tableaux dynamiques)
Les chaînes de caractères
Python
Les chaînes de caractères en Python sont immuable: une fois créées, on ne
peut plus changer leurs contenu.
Pour déclarer une chaîne de caractères
x = str()
x = str("welcome")
y = str("""Hello
world ! """)
z = str(" welcome\
everyone")
Variables
Les chaînes de caractères
Python
Pour récupérer la taille d’une chaı̂ne de caractères
>>> len(str3)
7
Variables
Les chaînes de caractères
Python
Pour récupérer la taille d’une chaı̂ne de caractères
>>> len(str3)
7
Pour remplacer une partie de la chaı̂ne par une autre
>>> str3.replace(’jour’,’soir’)
’bonsoir’
Variables
Les chaînes de caractères
Python
Pour récupérer la taille d’une chaı̂ne de caractères
>>> len(str3)
7
Pour remplacer une partie de la chaı̂ne par une autre
>>> str3.replace(’jour’,’soir’)
’bonsoir’
Pour découper une chaı̂ne de caractère selon un séparateur
précisé
>>> str3.split(’o’)
[’b’, ’nj’, ’ur’]
Variables
Les chaînes de caractères
Quelques méthodes sur les chaı̂nes de caractères
capitalize() : convertit la première lettre du premier mot en majuscule
title() : convertit la première lettre de chaque mot en majuscule
index(x) : retourne l’indice de la première occurrence de x dans la chaı̂ne, erreur sinon.
find(x) : retourne l’indice de la première occurrence de x dans la chaı̂ne, -1 sinon.
contains() : retourne true si la chaı̂ne contient x, false sinon.
upper() : convertit une chaı̂ne de caractères en majuscule
lower() : convertit une chaı̂ne de caractères en minuscule
strip() : supprime les espaces au début et à la fin
startswith(x) : retourne true si la chaı̂ne commence par x, false sinon.
endswith(x) : retourne true si la chaı̂ne se termine par x, false sinon.
count(x) : retourne le nombre d’occurrence de x dans la chaı̂ne
...
Variables
Les chaînes de caractères
Python
Les méthodes isX() : retourne un booléen
islower() : vérifie si tous les caractères d’une chaı̂nes sont en minuscule
I
ELH
c
isupper() : vérifie si tous les caractères d’une chaı̂nes sont en majuscule
OU
M
L ères d’une chaı̂nes sont alphabétiques
isalpha() : vérifie si tous lesE
caract
f
rsietous les caractères d’une chaı̂nes sont numériques
h
isnumeric() : vc
érifie
c A
isspace() : vérifie si tous les caractères d’une chaı̂nes sont des espaces
isalnum() : vérifie si tous les caractères d’une chaı̂nes sont alphanumériques
...
Variables
Les chaînes de caractères
Python
Exercice
Soit la chaine de caractères « Bienvenue dans la classe licda 2022 »:
Stocker cette chaine dans une variable ch en utilisant la fonction str
Afficher la taille de la chaine
Afficher le premier et le dernier caractère de la chaine
Afficher la sous-chaine « classe licda 2022 » à partir de ch
Changer la sous-chaine "classe licda 2022" par "Classe LICDA 2023"
...
Variables
Les chaînes de caractères
Python
Exemple de solution
ch = str("Bienvenue dans la classe licda 2022")
print(f"la taille de [{ch}] = {len(ch)}")
print(f"Le premier caractere de [{ch}] est : {ch[0]}")
print(f"Le dernier caractere de [{ch}] est : {ch[len
(ch)-1]}")
print(f"Le dernier caractere de [{ch}] est : {ch[-1]}")
print(ch[ch.index("classe"):])
print(ch[ch.find("classe"):])
ch = ch.replace("classe licda 2022", "Classe LICDA 2023")
print(ch)
Collections (tableaux dynamiques)
Python
Les collections en Python
List : collection ordonnée (selon l’ordre d’insertion) acceptant
valeurs dupliquées et types différents
Tuple : collection ordonnée (selon l’ordre d’insertion) de
constante acceptant valeurs dupliquées et types différents
Set : collection non-ordonnée (selon l’ordre d’insertion) et
non-indexée acceptant les types diff erents et n’autorisant pas les
valeurs dupliquées
Dictionary : collection non-ordonnée acceptant les valeurs
dupliquées avec des clés personnalisées
Collections (tableaux dynamiques)
Python
Pour déclarer une liste, on utilise les []
liste = [2, 3, 8, 5]
List
Collections (tableaux dynamiques)
List
Python
Pour déclarer une liste, on utilise les []
liste = [2, 3, 8, 5]
Pour accéder à un élément selon son indice (premier élément d’indice 0)
print(liste[1])
# affiche 3
Collections (tableaux dynamiques)
List
Python
Pour déclarer une liste, on utilise les []
liste = [2, 3, 8, 5]
Pour accéder à un élément selon son indice (premier élément d’indice 0)
print(liste[1])
# affiche 3
Pour accéder au dernier élément d’une liste
c
print(liste[-1])
# affiche 5
Collections (tableaux dynamiques)
List
Python
Pour déclarer une liste, on utilise les []
liste = [2, 3, 8, 5]
Pour accéder à un élément selon son indice (premier élément d’indice 0)
print(liste[1])
# affiche 3
Pour accéder au dernier élément d’une liste
c
print(liste[-1])
# affiche 5
Pour accéder à un élément selon son indice en commençant par la fin
print(liste[-2])
# affiche 8
Collections (tableaux dynamiques)
List
Python
Accéder à un élément via un indice inexistant génère une erreur
print(liste[10])
Traceback (most recent call last):
File "c:/Users/elmou/Desktop/cours-python/main.py"
, line 2, in <module>print
(liste[10])
IndexError: list index out of range
c
Collections (tableaux dynamiques)
List
Python
Accéder à un élément via un indice inexistant génère une erreur
print(liste[10])
Traceback (most recent call last):
File "c:/Users/elmou/Desktop/cours-python/main.py"
, line 2, in <module>print
(liste[10])
IndexError: list index out of range
c
Pour determiner la taille d’une liste
print(len(liste))
# affiche 4
Collections (tableaux dynamiques)
List
Python
Pour tester si un élément est dans la liste
if 3 in liste:
print(’oui’)
# affiche oui
c
Pour faire l'inverse
if 3 not in liste:
print(’oui’)
# affiche oui
c
Collections (tableaux dynamiques)
List
Python
Les listes supportent les deux opérateurs « + » et « * »
L’opérateur « + » sert à concaténer deux listes :
liste1 = [55, 20]
liste2 =[1, 2, 3, 50, 12]
res
= liste1 + liste2
print(res)
# [55, 20, 1, 2, 3, 50, 12]
L’opérateur « * » sert à dupliquer une liste :
liste1 = [55, 20]
res
= liste1 * 2
print(res)
# [55, 20, 55, 20]
Collections (tableaux dynamiques)
List
Python
Il est possible d’additionner (ou fusionner) les listes
liste += [1, 6]
print(liste)
# affiche [2, 3, 8, 5, 1, 6]
Collections (tableaux dynamiques)
List
Python
Il est possible d’additionner (ou fusionner) les listes
liste += [1, 6]
print(liste)
# affiche [2, 3, 8, 5, 1, 6]
Ou
liste = [*liste, 1, 6]
print(liste)
# affiche [2, 3, 8, 5, 1, 6]
Collections (tableaux dynamiques)
List
Python
Il est possible d’additionner (ou fusionner) les listes
liste += [1, 6]
print(liste)
# affiche [2, 3, 8, 5, 1, 6]
Ou
liste = [*liste, 1, 6]
print(liste)
# affiche [2, 3, 8, 5, 1, 6]
Sans l’opérateur *, le résultat est différent
liste = [liste, 1, 6]
print(liste)
# affiche [[2, 3, 8, 5], 1, 6]
Collections (tableaux dynamiques)
List
Python
Pour ajouter un nouvel élément à la liste (à la fin)
liste.append(9)
print(liste)
# affiche [2, 3, 8, 5, 1, 6, 9]
c
Collections (tableaux dynamiques)
List
Python
Pour ajouter un nouvel élément à la liste (à la fin)
liste.append(9)
print(liste)
# affiche [2, 3, 8, 5, 1, 6, 9]
c
Pour ajouter un nouvel élément à la liste à un emplacement précis
c
liste.insert(2, 6)
print(liste)
# affiche [2, 3, 6, 8, 5, 1, 6, 9]
Collections (tableaux dynamiques)
List
Python
Pour supprimer le dernier élément de la liste, on utilise pop
liste.pop()
print(liste)
# affiche [2, 3, 6, 8, 5, 1, 6 ]
Collections (tableaux dynamiques)
List
Python
Pour supprimer le dernier élément de la liste, on utilise pop
liste.pop()
print(liste)
# affiche [2, 3, 6, 8, 5, 1, 6 ]
c
Pour supprimer un élément de la liste selon la valeur, on utilise
remove. Si l’élément n’existe pas, une exception sera levée.
liste.remove(8)
print(liste)
# affiche [2, 3, 6, 5, 1, 6 ]
Collections (tableaux dynamiques)
List
Python
Pour supprimer un élément de la liste selon l’indice. Si l’indice est
supérieur à la taille de la liste, une exception sera levée.
liste.pop(1)
print(liste)
# affiche [2, 6, 5, 1, 6 ]
c
Collections (tableaux dynamiques)
List
Python
Pour supprimer un élément de la liste selon l’indice. Si l’indice est
supérieur à la taille de la liste, une exception sera levée.
liste.pop(1)
print(liste)
# affiche [2, 6, 5, 1, 6 ]
Ou aussi
del liste[1]
print(liste)
# affiche [2, 5, 1, 6 ]
c
Collections (tableaux dynamiques)
List
Python
Pour parcourir une liste
for elt in liste:
print(elt)
c
Collections (tableaux dynamiques)
List
Python
Pour parcourir une liste
for elt in liste:
print(elt)
Le résultat est
2
3
8
5
c
c
Collections (tableaux dynamiques)
List
Python
Pour afficher les éléments et leurs indices
for ind in range(len(liste)):
print(ind, liste[ind])
c
Collections (tableaux dynamiques)
List
Python
Pour afficher les éléments et leurs indices
for ind in range(len(liste)):
print(ind, liste[ind])
Le résultat est
0
1
2
3
2
3
8
5
c
c
Collections (tableaux dynamiques)
List
Python
On peut aussi utiliser enumerate
for ind, elt in enumerate(liste):
print(ind, elt)
c
Collections (tableaux dynamiques)
List
Python
On peut aussi utiliser enumerate
for ind, elt in enumerate(liste):
print(ind, elt)
Le résultat est
0
1
2
3
2
3
8
5
c
c
Collections (tableaux dynamiques)
List
Python
Pour modifier la valeur initiale de l’indice, on utilise start
for ind, elt in enumerate(liste, start=1):
print(ind, elt)
c
Collections (tableaux dynamiques)
List
Python
Pour modifier la valeur initiale de l’indice, on utilise start
for ind, elt in enumerate(liste, start=1):
print(ind, elt)
Le résultat est
1
2
3
4
2
3
8
5
c
c
Collections (tableaux dynamiques)
List
Python
Autres méthodes sur les listes
clear() : supprime tous les éléments de la liste.
count(x) : compte le nombre de x dans la liste.
index(x) : retourne l’indice de la première occurrence de x dans
la liste, une exception sera levée si x n’est pas dans la liste.
sort() : trie la liste.
reverse() : inverse l’ordre des éléments de la liste.
...
Collections (tableaux dynamiques)
List
Python
Exemple avec index(value, start, stop)
liste2 = [2, 3, 8, 5, 0, 3, 1, 3]
print(liste2.index(3))
# affiche 1
print(liste2.index(3, 2))
# affiche 5
print(liste2.index(3, -1))
# affiche 7
print(liste2.index(3, 0, 5))
# affiche 1
Collections (tableaux dynamiques)
List
Python
Exercice 1 : Étant donnée la liste suivante
ma_liste = [2, 7, 2, 1, 3, 9, 2, 4, 2]
Écrire un programme Python qui permet de supprimer la
deuxième occurrence du chiffre 2 de la liste
Collections (tableaux dynamiques)
List
Python
Exercice 1 : Étant donnée la liste suivante
ma_liste = [2, 7, 2, 1, 3, 9, 2, 4, 2]
Écrire un programme Python qui permet de supprimer la
deuxième occurrence du chiffre 2 de la liste
Le résultat attendu
[2, 7, 1, 3, 9, 2, 4, 2]
Collections (tableaux dynamiques)
List
Python
La solution
ma_liste = [2, 7, 2, 1, 3, 9, 2, 4, 2]
ma_liste.pop(ma_liste.index(2, ma_liste.index(2) + 1))
print(ma_liste)
Collections (tableaux dynamiques)
List
Python
Il est possible de décomposer les valeurs d’une liste et les
stocker dans des variables
a, b, c, d = liste
print(a, b, c, d)
# affiche 2 5 1 6
c
Collections (tableaux dynamiques)
List
Python
Il est possible de décomposer les valeurs d’une liste et les
stocker dans des variables
a, b, c, d = liste
print(a, b, c, d)
# affiche 2 5 1 6
c
Les valeurs d’une liste peuvent être construites à partir de
plusieurs variables
a, b, c, d = 2, 3, 8, 5
liste = [a, b, c, d]
print(liste)
# affiche [2, 3, 8, 5]
List
Indexation des listes
Python
Pour extraire les éléments de la position 2 jusqu’à la fin
print(liste[2:])
# affiche [5, 1, 6]
List
Indexation des listes
Python
Pour extraire les éléments de la position 2 jusqu’à la fin
print(liste[2:])
# affiche [5, 1, 6]
Pour extraire les éléments du début jusqu’à la position 4
print(liste[:4])
# affiche [2, 6, 5, 1]
List
Indexation des listes
Python
Pour extraire les éléments de la position 2 jusqu’à la fin
print(liste[2:])
# affiche [5, 1, 6]
Pour extraire les éléments du début jusqu’à la position 4
print(liste[:4])
# affiche [2, 6, 5, 1]
Pour extraire les caractères entre la position 2 et 4 en commençant
de la fin
print(liste[-4:-2])
# affiche[6,5]
Collections (tableaux dynamiques)
Tuple
Python
Pour déclarer un tuple, on utilise les ()
marques = ("peugeot", "ford", "toyota")
Collections (tableaux dynamiques)
Tuple
Python
Pour déclarer un tuple, on utilise les ()
marques = ("peugeot", "ford", "toyota")
Pour accéder à un élément selon son indice (premier element
d’indice 0)
print(marques[1])
# affiche ford
Collections (tableaux dynamiques)
Tuple
Python
Pour déclarer un tuple, on utilise les ()
marques = ("peugeot", "ford", "toyota")
Pour accéder à un élément selon son indice (premier élément
d’indice 0)
print(marques[1])
# affiche ford
Pour accéder au dernier élément d’une liste
print(marques[-1])
# affiche toyota
Collections (tableaux dynamiques)
Tuple
Python
Accéder à un élément via un indice inexistant génère une erreur
print(marques[10])
Traceback (most recent call last):
File "c:/Users/elmou/Desktop/cours-python/main.py"
, line 2, in <module>
print(marques[10])
IndexError: tuple index out of range
c
Collections (tableaux dynamiques)
Tuple
Python
Accéder à un élément via un indice inexistant génère une erreur
print(marques[10])
Traceback (most recent call last):
File "c:/Users/elmou/Desktop/cours-python/main.py"
, line 2, in <module>
print(marques[10])
IndexError: tuple index out of range
c
Pour déterminer la taille d’un tuple
print(len(marques))
# affiche 3
Collections (tableaux dynamiques)
Tuple
Python
Modifier un élément d’un tuple génère une erreur
marques[1] = "fiat"
Traceback (most recent call last):
File "c:/Users/elmou/Desktop/cours-python/main.py"
, line 2, in <module>
marques[1] = "fiat"
TypeError: ’tuple’ object does not support item
assignment
c
Collections (tableaux dynamiques)
Tuple
Python
Modifier un élément d’un tuple génère une erreur
marques[1] = "fiat"
Traceback (most recent call last):
File "c:/Users/elmou/Desktop/cours-python/main.py"
, line 2, in <module>
marques[1] = "fiat"
TypeError: ’tuple’ object does not support item
assignment
Remarques
Il est impossible d’ajouter ou supprimer un élément d’un tuple
count(x) et index(x) sont applicables sur les tuples
Collections (tableaux dynamiques)
Tuple
Python
Pour parcourir un tuple
for elt in marques:
print(elt)
c
Collections (tableaux dynamiques)
Tuple
Python
Pour parcourir un tuple
for elt in marques:
print(elt)
Le résultat est
peugeot
ford
toyota
c
c
Collections (tableaux dynamiques)
List
Python
Les Set

Les Set en python sont un type de collections de données non
ordonnée, modifiable et non indexée.

Les éléments définis dans les Set ne sont pas modifiables,
mais il est possible d'ajouter de nouveaux éléments ou de les
supprimer
Collections (tableaux dynamiques)
Set
Python
Pour déclarer un set, on utilise les {}
ensemble = {2, 3, 8, 5}
Impossible d’accéder à un élément d’un ensemble via son indice (un ensemble n’est pas
ordonné et est donc non indexé)
print(ensemble[1])
Traceback (most recent call last):
File "c:/Users/elmou/Desktop/cours-python/main.py", line 2, in <
module>
print(ensemble[1])
TypeError: ’set’ object is not subscriptable
Collections (tableaux dynamiques)
Python
Pour déterminer la taille d’un set
print(len(ensemble))
# affiche 4
Set
Collections (tableaux dynamiques)
Set
Python
Pour déterminer la taille d’un set
print(len(ensemble))
# affiche 4
Pour ajouter un nouvel élément à l’ensemble
ensemble.add(6)
print(ensemble)
# affiche {2, 3, 5, 6, 8}
Collections (tableaux dynamiques)
Set
Python
Pour déterminer la taille d’un set
print(len(ensemble))
# affiche 4
Pour ajouter un nouvel élément à l’ensemble
ensemble.add(6)
print(ensemble)
# affiche {2, 3, 5, 6, 8}
Pour ajouter plusieurs éléments simultanément
ensemble.update([6, 1])
print(ensemble)
# affiche {1, 2, 3, 5, 6, 8}
Collections (tableaux dynamiques)
Set
Python
Pour déterminer la taille d’un set
print(len(ensemble))
# affiche 4
Pour ajouter un nouvel élément à l’ensemble
ensemble.add(6)
print(ensemble)
# affiche {2, 3, 5, 6, 8}
Pour ajouter plusieurs éléments simultanément
ensemble.update([6, 1])
print(ensemble)
# affiche {1, 2, 3, 5, 6, 8}
Pour supprimer un élément
ensemble.remove(3)
print(ensemble)
# affiche {1, 2, 5, 6, 8}
Collections (tableaux dynamiques)
Set
Python
Si l’élément à supprimer n’existe pas, remove déclenche une erreur
ensemble.remove(9)
Traceback (most recent call last):
File "c:/Users/elmou/Desktop/cours-python/main.py", line 2, in <
module>
ensemble.remove(9)
KeyError: 9
Collections (tableaux dynamiques)
Set
Python
Si l’élément à supprimer n’existe pas, remove déclenche une erreur
ensemble.remove(9)
Traceback (most recent call last):
File "c:/Users/elmou/Desktop/cours-python/main.py", line 2, in <
module>
ensemble.remove(9)
KeyError: 9
On peut utiliser discard pour supprimer (ne déclenche pas d’erreur si l’élément n’existe
pas)
ensemble.discard(9)
print(ensemble)
# affiche {1, 2, 5, 6, 8}
c
Collections (tableaux dynamiques)
Set
Python
Si l’élément à supprimer n’existe pas, remove déclenche une erreur
ensemble.remove(9)
Traceback (most recent call last):
File "c:/Users/elmou/Desktop/cours-python/main.py", line 2, in <
module>
ensemble.remove(9)
KeyError: 9
On peut utiliser discard pour supprimer (ne déclenche pas d’erreur si l’élément n’existe
pas)
ensemble.discard(9)
print(ensemble)
# affiche {1, 2, 5, 6, 8}
c
Pour supprimer le dernier élément, on peut utiliser pop (Attention a` l’ordre)
ensemble.pop()
print(ensemble)
# affiche {1, 2, 5, 6 }
Collections (tableaux dynamiques)
Set
Python
ensemble = {2,3,8,5}
Pour parcourir un set
for elt in ensemble:
print(elt)
c
Collections (tableaux dynamiques)
Set
Python
ensemble = {2,3,8,5}
Pour parcourir un set
for elt in ensemble:
print(elt)
Le résultat est
2
3
8
5
c
c
Collections (tableaux dynamiques)
Set
Autres méthodes sur les ensembles
clear() : supprime tous les éléments de la liste
union() : retourne la fusion de deux ensembles
difference() : retourne un ensemble contenant les éléments
différents de deux ensembles ou plus
intersection() : retourne les éléments en commun entre
deux ensembles
issubset() : retourne True si un ensemble est contenu dans
un autre, False sinon.
isdisjoint() : retourne True si deux ensembles ont au moins
un élément en commun, False sinon.
...
Collections (tableaux dynamiques)
Dictionary
Python
Pour déclarer un dictionnaire (key: value), on utilise les {}
fcb = {
"pomme": 10,
"poire": 9,
"banane": 4,
"kiwi": 23
}
Collections (tableaux dynamiques)
Dictionary
Python
Pour déclarer un dictionnaire (key: value), on utilise les {}
fcb = {
"pomme": 10,
"poire": 9,
"banane": 4,
"kiwi": 23
}
Pour accéder à une valeur selon la clé
print(fcb.get(’pomme’))
# affiche 10
c
Collections (tableaux dynamiques)
Dictionary
Python
Pour déclarer un dictionnaire (key: value), on utilise les {}
fcb = {
"pomme": 10,
"poire": 9,
"banane": 4,
"kiwi": 23
}
Pour accéder à une valeur selon la clé
print(fcb.get(’pomme’))
# affiche 10
Ou aussi
print(fcb[’pomme’])
# affiche 10
Collections (tableaux dynamiques)
Dictionary
Python
Pour extraire la liste de valeurs d’un dictionnaire
print(fcb.values())
# affiche dict_values([10, 9, 4, 23])
Collections (tableaux dynamiques)
Dictionary
Python
Pour extraire la liste de valeurs d’un dictionnaire
print(fcb.values())
# affiche dict_values([10, 9, 4, 23])
Pour extraire la liste de clés d’un dictionnaire
print(fcb.keys())
# affiche dict_keys([’pomme’, ’poire’, ’banane’,
’kiwi’])
Collections (tableaux dynamiques)
Dictionary
Python
Pour extraire la liste de valeurs d’un dictionnaire
print(fcb.values())
# affiche dict_values([10, 9, 4, 23])
Pour extraire la liste de clés d’un dictionnaire
print(fcb.keys())
# affiche dict_keys([’pomme’, ’poire’, ’banane’,
’kiwi’])
Pour connaı̂tre le nombre d’items d’un dictionnaire
print(len(fcb))
# affiche 4
Collections (tableaux dynamiques)
Dictionary
Python
Pour ajouter un nouvel item au dictionnaire
fcb[’ananas’] = 8
print(fcb)
# affiche {’pomme’: 10, ’poire’: 9, ’banane’: 4, ’kiwi’: 23,
’ananas’: ’8’}
Collections (tableaux dynamiques)
Dictionary
Python
Pour ajouter un nouvel item au dictionnaire
fcb[’ananas’] = 8
print(fcb)
# affiche {’pomme’: 10, ’poire’: 9, ’banane’: 4, ’kiwi’: 23,
’ananas’: ’8’}
Si la clé existe, la valeur associée sera modifiée
fcb[’pomme’] = 11
print(fcb)
# affiche {’pomme’:10, ’poire’:9, ’banane’:4, ’kiwi’:23, ’ananas’:’8’}
Collections (tableaux dynamiques)
Dictionary
Python
Pour ajouter un nouvel item au dictionnaire
fcb[’ananas’] = 8
print(fcb)
# affiche {’pomme’: 10, ’poire’: 9, ’banane’: 4, ’kiwi’: 23,
’ananas’: ’8’}
Si la clé existe, la valeur associée sera modifiée
fcb[’pomme’] = 11
print(fcb)
# affiche {’pomme’:10, ’poire’:9, ’banane’:4, ’kiwi’:23, ’ananas’:’8’}
On peut utiliser la méthode update pour ajouter plusieurs items ou modifier des items
existants
fcb.update({’pomme’:11, 'ananas': 8})
print(fcb)
# affiche {’pomme’: 10, ’poire’: 9, ’banane’: 4, ’kiwi’: 23,
’ananas’: ’8’}
Collections (tableaux dynamiques)
Dictionary
Python
Pour supprimer un item selon la clé
fcb.pop(’pomme’)
print(fcb)
# affiche {’poire’:9, ’banane’:4, ’kiwi’:23, ’ananas’:’8’}
Collections (tableaux dynamiques)
Dictionary
Python
´
Pour supprimer un item selon la clé
fcb.pop(’pomme’)
print(fcb)
# affiche {’poire’:9, ’banane’:4, ’kiwi’:23, ’ananas’:’8’}
Ou aussi
del fcb[’pomme’]
print(fcb)
# affiche {’poire’:9, ’banane’:4, ’kiwi’:23, ’ananas’:’8’}
Collections (tableaux dynamiques)
Dictionary
Python
Pour supprimer un item selon la clé
fcb.pop(’pomme’)
print(fcb)
# affiche {’poire’:9, ’banane’:4, ’kiwi’:23, ’ananas’:’8’}
Ou aussi
del fcb[’pomme’]
print(fcb)
# affiche {’poire’:9, ’banane’:4, ’kiwi’:23, ’ananas’:’8’}
Pour supprimer le dernier item inséré
fcb.popitem()
print(fcb)
# affiche {’pomme’:10, ’poire’:9,’banane’:4, ’kiwi’:23 }
Collections (tableaux dynamiques)
Dictionary
Python
Pour parcourir un dictionnaire
for key in fcb:
print(key + ’ ’ + str(fcb[key]))
c
Collections (tableaux dynamiques)
Dictionary
Python
Pour parcourir un dictionnaire
for key in fcb:
print(key + ’ ’ + str(fcb[key]))
Le résultat est
pomme 10
poire 9
banane 4
kiwi 23
c
c
Collections (tableaux dynamiques)
Dictionary
Python
Ou aussi
for key, value in fcb.items():
print(key + ’ ’ + str(value))
c
Collections (tableaux dynamiques)
Dictionary
Python
Ou aussi
for key, value in fcb.items():
print(key + ’ ’ + str(value))
Le résultat est le même
pomme 10
poire 9
banane 4
kiwi 23
c
Collections (tableaux dynamiques)
Dictionary
Python
Autres méthodes sur les dictionnaires
clear() : supprime tous les items d’un dictionnaire
copy() : copie un dictionnaire
...
Collections (tableaux dynamiques)
Dictionary
Python
Exercice : Étant donnée la liste suivante :
liste = [2, 5, "Bonjour", True, ’c’, "3", "b", False
, 10]
Écrire un programme Python qui permet de stocker dans un
dictionnaire (compteur) les types contenus dans la liste liste
ainsi que le nombre d’éléments de cette liste appartenant à
chaque type.
Résultat attendu :
{’int’: 3, ’str’: 4, ’bool’: 2}
Collections (tableaux dynamiques)
Dictionary
Python
Une première solution
liste = [2, 5, "Bonjour", True, ’c’, "3", "b", False, 10]
compteur = {}
for e in liste:
if (type(e).__name__ in compteur):
compteur[type(e).__name__] += 1
else:
compteur[type(e).__name__] = 1
print(compteur)
# affiche {’int’: 3, ’str’: 4, ’bool’: 2}
Collections (tableaux dynamiques)
Dictionary
Python
Une deuxième solution
liste = [2, 5, "Bonjour", True, ’c’, "3", "b", False, 10]
compteur = {}
for elt in liste:
type = elt.__class__.__name__
if type in compteur.keys():
compteur.update({type: compteur[type] + 1})
else:
compteur.update({type: 1})
print(compteur)
# affiche {’int’: 3, ’str’: 4, ’bool’: 2}
Variable (objet) muable (mutable)
Python
En Python
Toute variable est un objet (instance d’une classe)
Deux types d’objet
 Mutable (ou muable) : peut être modifié après sa création (en
préservant la même identité)
 Immutable (ou immuable) : ne peut être modifié après sa création
(peut être réaffecté)
Variable (objet) muable (mutable)
Python
En Python
Toute variable est un objet (instance d’une classe)
Deux types d’objet
 Mutable (ou muable) : peut être modifié après sa création (en
préservant la même identité)
 Immutable (ou immuable) : ne peut être modifié après sa création
(peut être réaffecté)
Ne pas confondre modification et affectation
Variable (objet) muable (mutable)
Python
Exemple d’objets mutables
list
dict
set
classes personnalisées
Variable (objet) muable (mutable)
Python
Exemple d’objets mutables
list
dict
set
classes personnalisées
Exemple
liste = [2, 3, 8, 5]
print(id(liste))
# affiche 20373256
liste[2] = 4
print(id(liste))
# affiche 20373256
Variable (objet) muable (mutable)
Python
Exemple d’objets immuables
int et float
str
bool
tuple
Variable (objet) muable (mutable)
Python
Exemple d’objets immuables
int et float
str
bool
tuple
Exemple
ch = "bonjour"
print(id(ch))
affiche 9417152
ch = "bonsoir"
print(id(ch))
affiche 9417216
Variable (objet) muable (mutable)
Python
Un objet immuable peut être réaffecté mais ne peut être modifié
ch = "bonjour"
print(ch)
# affiche bonjour
ch[3] = "t"
# affiche TypeError: ’str’ object does not support
item assignment
Variable (objet) muable (mutable)
Python
Objet muable vs objet immuable
Objets immuables : accès plus rapide et modification coûteuse
(création d’une nouvelle copie)
Objets muables : modification moins coûteuse et accès moins
rapide
Variable (objet) muable (mutable)
Python
Un tuple est un objet immuable, donc il ne peut être modifié
tpl = ([2, 3], [8, 5])
tpl[0] = 1
# affiche TypeError: ’tuple’ object does not support item
assignment
Variable (objet) muable (mutable)
Python
Un tuple est un objet immuable, donc il ne peut être modifié
tpl = ([2, 3], [8, 5])
tpl[0] = 1
# affiche TypeError: ’tuple’ object does not support item
assignment
Si un élément d’un tuple est muable, alors il est possible de le modifier
c
tpl = ([2, 3], [8, 5])
tpl[0][1] = 1
print(tpl)
# affiche ([2, 1], [8, 5])
Téléchargement