Faculté des Sciences de Tunis
Leila Ben Othman
Deuxième année du cycle préparatoire intégré
MI
Année universitaire: 2023 - 2024
Les bases du langage python
Plan
1 Les bases du langage
L'entrée-sortie
Les structures conditionnelles
Les structures itératives
2 La gestion d'exceptions en python
Exemples d'exceptions
Types d'exceptions
La clause try... except...else...nally
Les assertions
L'instruction raise
Les bases du langage
L'entrée-sortie
L'entrée-sortie
Achage avec la fonction print()
In [1]: print('Bonjour');
Out [1]: Bonjour
In [2]: print("Bonjour");
Out [2]: Bonjour
In [3]: print('Bonjour \n les futurs ingénieurs')
Out [3]: Bonjour
les futurs ingénieurs
Leila Ben Othman, FST 2023-2024 4 / 30
Les bases du langage
L'entrée-sortie
L'entrée-sortie
Achage avec la fonction print()
In [1]: x=4;y=5;z=6print(x,y,z)
Out [1]: 4 5 6
In [2]: print(x,y,z,sep='::')
Out [2]: 4::5::6
In [3]: print(x,y,z,sep='\ n')
Out [3]: 4
5
6
In [4]: print(x,y,z,sep='::', end=';')
Out [4]: 4::5::6;
Leila Ben Othman, FST 2023-2024 5 / 30
Les bases du langage
L'entrée-sortie
L'entrée-sortie
La saisie avec la fonction input()
In [1]: x=input('introduire une valeur')
Out [1]: introduire une valeur15
In [2]: type(x)
Out [2]: <class 'str'>
⇒ Convertir la saisie en type adéquat avec les fonctions int(), oat() ou
complex()
Leila Ben Othman, FST 2023-2024 6 / 30
Les bases du langage
Les structures conditionnelles
Les structures conditionnelles
• Une structure conditionnelle en PYTHON est dénie par son
indentation.
if condition: # script qui teste la parité d'un entier
........................ x=int(input('Donner un entier'))
Bloc d'instructions 1 if x%2==0 :
....................... print('Entier pair')
else: else:
....................... print('Entier impair')
Bloc d'instructions 2
........................
Leila Ben Othman, FST 2023-2024 7 / 30
Les bases du langage
Les structures conditionnelles
Les structures conditionnelles
• Les structures conditionnelles en PYTHON peuvent être imbriquées
et par conséquent, elles doivent être indentées correctement.
• Il est possible d'utiliser le mot-clé elif pour combiner else-if.
if condition1: if condition1:
Bloc d'instructions 1 Bloc d'instructions 1
else: elif condition 2:
if condition 2: Bloc d'instructions 2
Bloc d'instructions 2 else:
else: Bloc d'instructions 3
Bloc d'instructions 3
Leila Ben Othman, FST 2023-2024 8 / 30
Les bases du langage
Les structures conditionnelles
Les structures conditionnelles
Opérateurs de comparaison Opérateurs booléens
x < y (x strictement inférieur à y) and (conjonction)
x > y (x strictement supérieur à y) or (disjonction)
x >= y (x supérieur ou égal à y) not (négation)
x <= y (x inférieur ou égal à y)
x==y (x égal à y)
x != y (x diérent de y)
.
Leila Ben Othman, FST 2023-2024 9 / 30
Les bases du langage
Les structures itératives
Les structures itératives
La fonction range :
• range(b) énumère les entiers 0, 1, 2,...,b-1 (pas=1)
• range(a,b) énumère les entiers a, a+1, a+2,...,b-1 (pas=1)
• range(a,b,c) énumère les entiers a, a+c, a+2c,...,a+nc, où n est le
plus grand entier vériant a + nc < b (pas=c)
Leila Ben Othman, FST 2023-2024 10 / 30
Les bases du langage
Les structures itératives
Les structures itératives
for i in range(5): for i in range(2,5):
print(i) print(i)
0 2
1 3
2 4
3
4
for i in range(2,10,3):
print(i)
2
5
8
Leila Ben Othman, FST 2023-2024 11 / 30
Les bases du langage
Les structures itératives
Les structures itératives
while condition: i=0
............................... while i<=5:
Bloc d'instructions print(i)
............................... i+=1
0
1
2
3
4
5
Leila Ben Othman, FST 2023-2024 12 / 30
Les bases du langage
Les structures itératives
L'instruction break
• L'instruction break dans une structure itérative (for ou while) permet
l'arrêt immédiat de la boucle dans laquelle se trouve l'instruction.
• On l'utilise avec la syntaxe suivante au sein d'une boucle:
for i in range(a,b,c): while condition_boucle:
if condition: if condition:
break break
Ainsi:
• l'instruction break a presque le même eet que l'utilisation d'une
variable booléenne pour sortir d'une boucle while (exemples 1 &2).
• l'instruction break rend possible l'arrêt d'une boucle for (exemple 3)
Leila Ben Othman, FST 2023-2024 13 / 30
Les bases du langage
Les structures itératives
exemple 1 exemple 2
x=10 x=10
e n c o r e=x>0 while x > 0 :
while e n c o r e : print (x)
print (x) i f x == 5 :
i f x == 5 : break
e n c o r e=F a l s e x=x −1
x=x −1 p r i n t ( "Au r e v o i r , x=" , x )
p r i n t ( "Au r e v o i r , x=" , x )
10
10 9
9 8
8 7
7 6
6 5
5 Au revoir, x=5
Au revoir, x= 4
Leila Ben Othman, FST 2023-2024 14 / 30
Les bases du langage
Les structures itératives
exemple 3
f o r x i n range (10 ,0 , − 1):
print (x)
i f x == 5 :
break
p r i n t ( "Au r e v o i r , x=" , x )
10
9
8
7
6
5
Au revoir, x=5
Leila Ben Othman, FST 2023-2024 15 / 30
Les bases du langage
Les structures itératives
• La boucle Répéter...jusqu'à n'existe pas en PYTHON mais on peut
la simuler en utilisant la boucle while (ConditionVraie) et
l'instruction break avec la condition d'arrêt (exemple 4)
⇒ Solution non recommandée!!!
• ConditionVraie: condition qui retourne toujours une valeur True.
Donc on pourra écrire :
• while 10>5:
• while True:
• while 1:
Leila Ben Othman, FST 2023-2024 16 / 30
Les bases du langage
Les structures itératives
NB: Évitez l'utilisation de la boucle while de cette manière!!!
exemple 4
x=10
while True :
print (x)
i f x == 5 :
break
x=x −1
p r i n t ( "Au r e v o i r , x=" , x )
10
9
8
7
6
5
Au revoir, x=5
Leila Ben Othman, FST 2023-2024 17 / 30
La gestion d'exceptions en python
Les exceptions
• En PYTHON, comme dans la majorité des langages de
programmation, certaines instructions peuvent générer des erreurs.
• Lorsqu'une erreur est générée, cela se traduit par un message
d'erreur ainsi que l'arrêt du programme.
• An d'éviter cet arrêt "brusque" du programme, on veut pouvoir
continuer l'exécution en adaptant légèrement le traitement
=⇒ On parle de gestion d'erreurs (gestion des exceptions).
• On dispose pour cela de la structure try...except.
Leila Ben Othman, FST 2023-2024 18 / 30
La gestion d'exceptions en python
Exemples d'exceptions
Exemples (1)
> ma_chaine='12abc'
> int(ma_chaine)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '12abc'
> 25/0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
Leila Ben Othman, FST 2023-2024 19 / 30
La gestion d'exceptions en python
Exemples d'exceptions
Exemples (2)
> L=[i*2 for i in range(10)]
>L
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
> L[len(L)]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
> '2' + 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
Leila Ben Othman, FST 2023-2024 20 / 30
La gestion d'exceptions en python
Exemples d'exceptions
Exemples (3)
> t=('FST', 'python', 'MI2-A', 'MI2-B')
> t[1]='python3'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
Leila Ben Othman, FST 2023-2024 21 / 30
La gestion d'exceptions en python
Types d'exceptions
Types d'exceptions
Diérentes types d'erreurs (les plus courantes):
• ZeroDivisionError: se produit quand on eectue une division par 0;
• SyntaxError: se produit quand la syntaxe est erronée;
• NameError: se produit quand on utilise une variable qui n'existe pas;
• TypeError: se produit quand une opération est appliquée à un objet
qui n'est pas de type adéquat;
• IOError: se produit quand une opération d'entrée-sortie échoue;
• IndexError: se produit si on cherche à accéder à un élément d'une
séquence, en dehors des limites de celle-ci;
• ImportError: se produit quand l'import d'un module échoue.
Leila Ben Othman, FST 2023-2024 22 / 30
La gestion d'exceptions en python
La clause try... except...else...nally
try... except...else...nally
try:
........................ try :
Bloc d'instructions 1 x= i n t ( input ( " Donner un e n t i e r " ) )
....................... y=1/x
except: except :
....................... p r i nt (" Erreur ")
Bloc d'instructions 2 e l s e :
........................ p r i n t ( "L ' i n v e r s e e s t " , y )
else:
.......................
Bloc d'instructions 3
........................
=⇒ Le bloc d'instructions dans la clause else ne sera exécutée que si
aucune exception n'a été levée.
Leila Ben Othman, FST 2023-2024 23 / 30
La gestion d'exceptions en python
La clause try... except...else...nally
try... except...else
try:
........................ try :
Bloc d'instructions 1 x= i n t ( input ( " Donner un e n t i e r " ) )
....................... y=1/x
except TypeError1: except Z e r o D i v i s i o n E r r o r :
....................... p r i n t ( " E r r e u r − D i v i s i o n par z e r o " )
Bloc d'instructions 2 except V a l u e E r r o r :
........................ p r i n t ( " E r r e u r − E n t i e r non v a l i d e " )
except TypeError2: else :
....................... p r i n t ( "L ' i n v e r s e e s t " , y )
Bloc d'instructions 3
........................
else:
.......................
Bloc d'instructions 4
........................
Leila Ben Othman, FST 2023-2024 24 / 30
La gestion d'exceptions en python
La clause try... except...else...nally
try... except...else
On peut appliquer un même traitement à plusieurs exceptions.
=⇒ except (TypeError1, TypeError2, . . .)
try:
........................
Bloc d'instructions 1
.......................
except (TypeError1, TypeError2):
.......................
Bloc d'instructions 2
........................
except TypeError3:
.......................
Bloc d'instructions 3
........................
Leila Ben Othman, FST 2023-2024 25 / 30
La gestion d'exceptions en python
La clause try... except...else...nally
try... except...else..nally
La clause nally permet d'exécuter du code quel que soit le résultat de
l'exécution du bloc try.
try :
x= i n t ( input ( " Donner un e n t i e r " ) )
y=1/x
except Z e r o D i v i s i o n E r r o r :
p r i n t ( " E r r e u r − D i v i s i o n par z e r o " )
except V a l u e E r r o r :
p r i n t ( " E r r e u r − E n t i e r non v a l i d e " )
else :
p r i n t ( "L ' i n v e r s e e s t " , y )
finally :
p r i n t ( 'Au r e v o i r ' )
Leila Ben Othman, FST 2023-2024 26 / 30
La gestion d'exceptions en python
La clause try... except...else...nally
Exemple
#B l o c 1 #B l o c 2
try : try :
x=3+2 x=x+2
except : except :
x=2+2 x=2+2
p r i n t ( ' x= ' , x ) p r i n t ( ' x= ' , x )
else : else :
x=x+1 x=x+1
p r i n t ( ' x= ' , x ) p r i n t ( ' x= ' , x )
finally : finally :
p r i n t ( 'Au r e v o i r ' ) p r i n t ( 'Au r e v o i r ' )
Leila Ben Othman, FST 2023-2024 27 / 30
La gestion d'exceptions en python
Les assertions
Les assertions
• Les assertions sont des prédicats devant être évaluées comme True.
Dans le cas contraire, une exception AssertionError est levée pour
indiquer que l'expression est fausse.
> assert x>0
> assert x%2==0
> assert len(L)>10
Leila Ben Othman, FST 2023-2024 28 / 30
La gestion d'exceptions en python
Les assertions
Exemple
def div_2 ( x ) :
#j e ne v e u x t r a i t e r que l e s e n t i e r s p a i r s
try :
a s s e r t x%2==0
return ( x //2)
except :
return ( ' E r r e u r , e n t i e r i m p a i r ' )
Leila Ben Othman, FST 2023-2024 29 / 30
La gestion d'exceptions en python
L'instruction raise
L'instruction raise
• L'instruction raise permet au programmeur de déclencher une
exception.
• Exemple:
x= i n t ( input ( ' donner un e n t i e r ' ) )
i f x > 5:
r a i s e E x c e p t i o n ( ' x s h o u l d not e x c e e d 5 . ' )
Leila Ben Othman, FST 2023-2024 30 / 30