Vous êtes sur la page 1sur 140

Initiation au développement Python

Mohamed Aymen
CHARRADA
ISET du KEF

Info 1

A.U. 2021/2022
Objectif du cours

Ce cours vise à présenter les notions de base du


développement informatique avec le langage
Python
 Niveaux cibles :
Étudiants du tronc commun Info 1
 Pré-requis :
Algorithme et programmation (niveau 1 et 2)

Mohamed Aymen CHARRADA - ISET El KEF - Info1


Plan du cours
 Introduction au langage Python
 Notions de base
 Structures conditionnelles
 Structures itératives
 Types composites
 Modules et fonctions

Mohamed Aymen CHARRADA - ISET El KEF - Info1


Introduction
 Fondement du langage Python

Guido van Rossum


Un développeur hollandais

Film britannique sorti


en 1975
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Caractéristiques du langage Python
 Python est un langage de programmation de haut niveau
en développement depuis 1989. Il est géré aujourd'hui par
la Python Software Foundation, fondée en 2001
 C’est un langage de programmation
 Interprété : Un interpréteur traduit en temps réel votre code en
langage machine
 Fonctionnel, modulaire et orienté objet : il supporte les
styles de la programmation OO, structurée et fonctionnelle
 Portable : il est indépendant de l’environnement sur lequel il
fonctionne
 Simple : Son syntaxe est très simple, combiné à des types
dynamiques de données évolués et performants, conduit a des
programmes a la fois très compacts et très lisibles
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Caractéristiques du langage Python
 C’est un langage de programmation (suite)
 Optimisé : A fonctionnalités égales, un programme Python est
souvent de 3 a 5 fois plus court qu'un programme C ou C++ (ou
même Java) équivalent, ce qui représente en général un temps de
développement de 5 a 10 fois plus court
 Scalable : on peut facilement l'interfacer avec des bibliothèques
existantes d’autres langages
 Interactif : vous pouvez interagir directement avec l’interpréteur
pour écrire vos programmes
 Dynamiquement typé : Tout objet possède un type bien défini a
l’exécution, qui n'a pas besoin d’être déclare a l'avance
 Fonctionnel : Il convient aussi bien a des scripts d'une dizaine de
lignes qu'a des projets complexes

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Utilisation du Python
 Développement des scripts et des services web pour les
applications web
 Développement des applications de calcul scientifique
 Développement des jeux vidéo
 Intelligence artificielle
 Machine Learning
 Big data
 Data science
 Développement des logiciels et des progiciels
…

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Versions du Python
 On distingue principalement deux versions de Python :
Python 2 et Python 3
 Python 2.x est l’ancienne version, qui continuera d’être
supportée (avoir des mises à jour officielles) jusqu’en 2020
 Python 3.x est la version actuelle du langage. Elle
apporte de nouvelles fonctionnalités très utiles
 La version 3 a cassé la compatibilité ascendante du
langage : Un programme qui tourne à la perfection sous
Python 2.x devra donc être mis à jour un minimum pour
fonctionner de nouveau sous Python 3
 De ce fait, Il est souvent recommandé de commencer à
développer directement avec la version 3.x
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Versions du Python
 La dernière version stable officialisée est Python 3.9.7
(Aout 2021)
 Elle est téléchargeable sur le lien suivant :
https://www.python.org/downloads/release/python-390/

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Python leader de la programmation

IEEE : top 10 des langages de programmation les plus populaires de l’année


Mohamed Aymen CHARRADA - ISET El KEF - Info1
2020
 Technique de production du programme Python
 Technique mixte : l'interprétation du bytecode
compilé. Elle représente un bon compromis entre la
facilité de développement et la rapidité d'exécution
Code Byte
Compilateur Interpréteur Résultat
source code

 Pour exécuter un programme, Python charge le fichier source


« .py » en mémoire vive (RAM), en fait l'analyse (lexicale,
syntaxique et sémantique), et produit le « bytecode » (un fichier
« .pyo » ou « .pyc »). Ce « bytecode » sera ensuite transmis a un
interpréteur pour l’exécution finale
 Afin de ne pas refaire inutilement toute la phase d'analyse et de
production, Python recharge simplement le fichier bytecode s'il est
plus récent que le fichier source
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Mode d’utilisation de Python (1/4)
 Mode interactif (mode console) (1/2)
 Python dispose d'une interface interactive appelée IDLE, qui
permet de tester les commandes de base
 Aussitôt une instruction encodée, il suffit d'appuyer sur la touche
ENTER du clavier pour que l'interpréteur l'exécute
 Les lignes qui commencent par >>> sont l'invite de commande
qui vous propose d'encoder une instruction. Si cette dernière
produit un résultat, il est affiché une fois l'instruction exécutée

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Mode d’utilisation de Python (2/4)
 Mode interactif (mode console) (2/2)
☺ Le mode interactif est très pratique pour rapidement tester des
instructions et directement voir leurs résultats
☺ Le mode interactif permet d’apprendre rapidement les bases du
langage
 Son utilisation reste néanmoins limitée à des programmes de
quelques instructions
 Le code saisie ne peut pas être sauvegardé une fois la console est
fermée

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Mode d’utilisation de Python (3/4)
 Mode script (mode éditeur) (1/2)
 Ce mode permet la saisie de toutes les instructions de votre
programme dans un fichier, et l'avoir enregistré sur votre
ordinateur
 On utilise généralement l'extension de fichier « .py » pour des
fichiers contenant du code Python
 Ce fichier sera exécuté par une commande ou par une touche du
menu de l'éditeur
 On peut utiliser un éditeur texte comme « NotePad » ou
« WordPad » pour créer des scripts Python
 Plusieurs éditeurs (environnement de développement intégré IDE)
offrent la possibilité de créer des script Python : PyCharm, DrPython,
Eclipse, Nedit, PythonWin, Python scripter …

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Mode d’utilisation de Python (4/4)
 Mode script (mode éditeur) (2/2)
 Exemple (éditeur PyCharm)

Mohamed Aymen CHARRADA - ISET El KEF - Info1


Notions de base
 Premier programme
 Traditionnellement, le premier programme que vous écrivez
dans un nouveau langage est appelé « Hello World! »
 Python offre la fonction prédéfinie « print » qui permet
l’affichage sur l’écran
print (msg)
avec « msg » est une chaine de caractère placée entre ' ‘

Dans ce cas, le résultat est :

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Les identificateurs (1/2)
 Un identificateur est le nom utilisé pour identifier une
variable, une constante, une fonction, une classe, une
module ou autre objet
 Un identificateur est une chaine de caractère non vide qui
peut contenir uniquement des lettres (majuscules et
minuscules), des caractères numériques (« 0 »,…, « 9 ») et
les tirets-bas (« _ »)
 Un identificateur commence obligatoirement avec une
lettre majuscule, minuscule ou un tiret-bas « _ »
 Python est un langage sensible à la casse (« Abc » est
complètement différent de « abc »)

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Les identificateurs (2/2)
 Il y a des normes à appliquer sur les différents
identificateurs :
 Le nom d’une classe commence avec une lettre majuscule. Les
autres identificateurs commence avec une lettre minuscule ou un
tiret-bas
 Si un identificateur commence avec un tiret-bas, cela signifie que
cet identificateur est privé. S’il commence avec deux tirets-bas
cela signifie qu’il est fortement privé
 Exemple
%Xy _Ta7a Abc 2xy a __s87

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Les mots réservés
 Chaque langage de programmation admet une liste de mots
réservés qui ne peuvent pas être utilisés comme
identificateurs
 Ci-joint la liste des mots réservés du Python

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Les instructions multilignes
 Dans le cas général, chaque instruction se termine en faisant
un retour à la ligne
 Cependant, Python utilise le symbole « \ » pour indiquer
que l’instruction actuelle va s’étendre sur plus qu’une seule
ligne

 Les instructions contenues entre crochets [], {} ou () n'ont


pas besoin d'utiliser le caractère de continuation de ligne
«\»

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Les guillemets
 Python accepte les guillemets simples ('), doubles (") et
triples (''' ou """) pour délimiter les chaînes de caractères, à
condition que le même type de guillemets commence et
termine la chaîne

 Les guillemets triples sont utilisés pour délimiter une


chaîne contenant plusieurs lignes

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Les commentaires
 Un commentaire est un texte utilisé généralement pour
expliquer une instruction ou introduire un bloc. Il est
ignoré lors de l’exécution
 Les commentaires mono-lignes en Python commence par le
symbole « # ». Tous les caractères qui suivent ce symbole
jusqu’à la fin physique de la ligne font partie du
commentaire
 Les commentaires multilignes sont délimités par des
guillemets triples

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Les variables
 Les programmes informatiques servent essentiellement à
manipuler des données qui peuvent êtres très diverses
 Pour pouvoir accéder à ces données, les programmes fait
usage d’un grand nombre de variables de différents types
 Une variable admet un nom (un identifiant) et un type, et
n’est en réalité qu’un emplacement mémoire réservé pour
stocker des valeurs
 Lorsque vous créez une variable, l’ordinateur réserve de l'espace en
mémoire pour cette variable, son nom représente une référence
désignant l’adresse de la zone mémoire réservée
 La taille de l’espace mémoire réservée pour une variable
varie en fonction de son type
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Les types des variables
 Le type d’une variable désigne la nature de ses valeurs
 Les principaux types de données en Python :
 Les numériques : ce type de données regroupe toutes les valeurs
numériques y compris les entiers (int), les entiers longs (long), les
réels (float) et les nombres complexes (complex)
 Les booléens
 Les chaines de caractères
 Les listes
 Les tuples
 Les dictionnaires
…

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Déclaration et affectation des variables
 En Python, la déclaration d’une variable et l’affectation
d’une valeur se font en même temps
 L’affectation se fait à travers le symbole « = »
 La valeur initiale de la variable permet de définir son type
(On n’a pas besoin de définir le type de la variable
lors de sa déclaration)
 Exemple

Dans cet exemple, nous avons déclaré, puis initialisé la


variable X avec la valeur 2

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Déclaration et affectation des variables
 En Python, lors de la déclaration d’une variable et
l’affectation d’une valeur, il se passe plusieurs opérations :
 Python crée et mémorise le nom de variable (Les noms de variables,
appelés aussi références, sont mémorisées dans une zone
particulière de la mémoire que l’on appelle espace de noms;
 Python « devine » le type de la variable (Python est un langage au
typage dynamique);
 Python alloue (réserve) de l’espace en mémoire pour la variable
déclarée nécessaire pour accueillir ses valeurs et insère la valeur
affectée dans cet espace;
 Enfin, Python établie un lien (par un système interne de pointeurs)
entre le nom de la variable et l’emplacement mémoire contenant la
valeur correspondante

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Typage dynamique
 Python offre le mécanisme de typage dynamique par
opposition au typage statique qui est utilisé dans plusieurs
langages connus (C, C++, java,…) :
 On n’a pas besoin de définir le type d’une variable lors de sa
déclaration (La variable est automatiquement créée avec le type qui
correspond au mieux à la valeur affectée)
 Une variable peut changer de type en fonction de la valeur affectée

Dans cet exemple, nous avons utilisé la


même variable X pour stocker trois
valeurs de types différents (entier, réel
et chaine de caractères)

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Déclaration et affectation multiple
 Python permet de déclarer et d’affecter la même valeur ou
des valeurs différentes à plusieurs variables au même temps
(dans une seule instruction)
Dans cet exemple, nous avons créé trois
variables et affecté les trois à la même valeur
au même temps (Dans ce cas A, B et C sont
trois variables entières)

Dans cet exemple, nous avons


créé trois variables et affecté
trois valeurs différentes au
même temps (Dans ce cas, A est
une variable de type entier, B
est réelle et C est une chaine
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Affichage des variables
 Pour afficher la valeur d’une variable, il existe deux
possibilités :
 Entrer au clavier le nom de la variable, puis la touche « Enter »
Python répond en affichant la valeur correspondante
 utiliserez toujours l’instruction « print »

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Les booléens
 Les booléens comme dans tout langage peuvent prendre
deux valeurs uniquement
 En python, la classe « bool » représente les booléens.
Ses valeurs sont « True » et « False »
 Exemple

NB : « type » est une fonction prédéfinie qui détermine le


type de la variable passée comme argument. Elle sera
présentée dans la suite du cours
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Les entiers et les réels
 Un entier est nombre sans virgule. En python, il est
référencé avec la classe « int » pour les entiers simples
et « long » pour les entiers longs
 Un réel est un nombre avec virgule. Il est référencé avec
la classe « float »
 On trouve aussi la classe « complex » qui représente
les nombres complexes (ayant la forme « x + J »)
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Transtypage
 Le transtypage (cast) correspond à un changement explicite
de type de variable
 Pour effectuer un transtypage de type en python, il suffit de
taper le type désiré puis la variable à transtyper entre
parenthèses
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Activité 1
 Décrivez clairement et le plus complètement possible ce qui
se passe à chacune des trois lignes de l’exemple ci-dessous :

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Opérateurs et expressions
 Une expression est la combinaison des opérandes (des
variables et/ou des valeurs) en utilisant des opérateurs
 Considérez l'expression « 4 + 5 = 9 ». Ici, « 4 » et « 5 » sont
appelés opérandes et « + » est appelé opérateur
 Type des opérateurs
 Opérateurs arithmétiques
 Opérateurs de comparaison
 Opérateurs d’affectation
 Opérateurs logiques
 Opérateurs d'adhésion

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Opérateurs et expressions
 Opérateurs arithmétiques

Exemple
Opérateurs Désignation
A = 10 et B = 3
+ Addition A+B = 13
- Soustraction A-B = 7
* Multiplication A*B = 30
/ Division A/B = 3,333
% Modulo A%B = 1
** Exposant A**B = 1000

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Opérateurs et expressions
 Opérateurs de comparaison
Ces opérateurs comparent les valeurs des deux cotés de l’expression
et retourne le résultat en format booléenne
Exemple
Opérateurs Désignation
A = 10 et B = 3
== Egalité A == B retourne faux
!= et <> Différence A != B retourne vrai
> Strictement supérieur à A > B retourne vrai
< Strictement inférieur à A < B retourne faux
>= Supérieur ou égale A >= B retourne vrai
<= Inférieur ou égale A <= B retourne faux

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Opérateurs et expressions
 Opérateurs d’affectation
Exemple
Opérateurs Désignation
A = 10 et B = 3
C = A+B assigne la somme
= Affectation
de A + B à la variable C
Additionne deux valeurs et stocke A += B
+= le résultat dans la variable à est équivalent à
gauche A =A + B
-= Soustraction A-=B  A=A-B
*= Multiplication A*=B  A=A*B
/= Division A/=B  A=A/B
%= Modulo A%=B  A=A%B
**= Exposant A**=B  A=A**B

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Opérateurs et expressions
 Opérateurs logiques
Exemple
Opérateurs Désignation
A = vrai et B = faux
And ou bien & Et logique A and B est faux
Or ou bien | Ou logique A or B est vrai
Permet d’inverser l’état
Not Not A est faux
d’une condition

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Opérateurs et expressions
 Opérateurs d’adhésion
Opérateurs Désignation
In A in B retourne vrai si
Not in A not in B

 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Opérateurs et expressions
 Priorité des opérateurs :
Lorsqu’il y a plus d’un opérateur dans une expression,
l’ordre dans lequel les opérations doivent être effectuées
dépend de règles de priorité
**
*/%
+-
& | and or
<= < > >=
<> == !=
= %= /= -= += *= **=
in not in

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Activité 2
 Etant la déclaration des variables suivantes
a, b, c, d = 10, 5.5, 0, True
 Donnez les résultats des expressions suivantes
 d = a in [1, 2, 3, 5]
 a += 2**3
 b -= (b - 1)/3
c=a%b+c>a
 d = c == (a<3) or d

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Les lignes et les blocs d’instructions (1/2)
 Python n’utilise pas les accolades pour délimiter les blocs
d’instructions lors de la définition d’une fonction ou d’une
classe ou lors de l’utilisation des instructions de contrôle
 Les blocs d’instructions sont délimités par une indentation
de ligne (un décalage à droite)
• Les blocs d'instructions sont toujours associes a
une ligne d’entête contenant une instruction bien
spécifique (if, elif, else, while, def, ...) se
terminant par un double point
• Les blocs sont délimités par l'indentation :
toutes les lignes d'un même bloc doivent être indentation
indentées exactement de la même manière
• Le code du bloc le plus externe (bloc 1) ne peut
pas lui-même être décalé de la marge de gauche

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Les lignes et les blocs d’instructions (2/2)
 Exemple :

Mohamed Aymen CHARRADA - ISET El KEF - Info1


Structures conditionnelles
 Structures conditionnelles (décisionnelles)
 Dans la vie courante, on se trouve souvent confronté à
des situations où on doit choisir entre deux ou plusieurs
choix en fonction d’une ou de plusieurs conditions
 Exemple - Je conduis ma voiture et j’arrive à un feu :
 Si (le feu est rouge) alors je freine
 Sinon je poursuis ma route
 Cette situation est résolue en utilisant les instructions
conditionnelles : une instruction (suite d’instructions)
ne s’exécute que si une condition est vérifiée. Si la
condition n’est pas vérifiée, c’est une autre instruction
(suite d’instructions) qui est exécutée
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Structures conditionnelles (décisionnelles)
 La forme générale d’une structure conditionnelle

Si condition
est fausse
Condition Condition

Si condition Si condition
Si condition
est vraie est vraie
est fausse
Traitement 2
Traitement 1 Traitement 1

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Structures conditionnelles (décisionnelles)
 Syntaxe structure
conditionnelle à
structure deux choix
conditionnelle à (alternative)
un seul choix if condition :
Traitement 1
if condition : else :
traitement 1 Traitement 2
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Structures conditionnelles (décisionnelles)
 Lorsqu’on se trouve dans une situation où on a deux
conditions ou plus, on fera recours à l’utilisation d’une
structure conditionnelle enchainée ou bien imbriquée
 Structure enchainée  Structure imbriquée

if condition1 : if condition1 :
Traitement 1 Traitement 1
elif condition2 : else :
Traitement 2 if condition2:
… Traitement 2
else : else :
Traitement n Traitement 3

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Structures conditionnelles (décisionnelles)
 Exemple

Structure enchainée
Structure imbriquée

 Remarque : il n’y a pas une structure « selon … faire … »


ou « suivant … faire … » en Python
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Activité 3
 Ecrire un programme en Python qui permet de lire un
montant (réel) et qui permet d’appliquer une remise sur ce
montant. La remise est calculée comme suit :
 1% si le montant est strictement inférieur à 2000 DT
 5% si le montant est compris entre 2000 DT (inclus) et 5000 DT
(inclus).
 10% si le montant est strictement supérieur à 5000DT.
Le montant final (après remise) doit être affiché.

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Solution de l’activité 3

Résultat de
l’exécution
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Travail à la maison
 Ecrire un programme Python qui permet de lire la valeur
d’une variable entière « M », cet entier va représenter
l’indice du mois. Le programme doit afficher par la suite le
nombre des jours du mois correspondant. Si la valeur de «
mois » n’appartient pas à l’intervalle [1..12], un message
d’erreur sera affiché.
Exemple :
 Si M = 1, le mois correspondant est « Janvier », le nombre des jours
est 31
 Si M = 2, le mois correspondant est « Février », le nombre des jours
est 28 ou 29
 Si M = 4, le mois correspondant est « Avril », le nombre des jours
est 30
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Travail à la maison (2)
 Une année est bissextile (contient 366 jours) si elle est
multiple de 4, sauf les années de début siècle (qui se
terminent par 00) qui ne sont bissextiles que si elles sont
divisibles par 400.
 Exemples :
 1080 et 1996 sont bissextiles car elles sont divisibles par 4.
 2000 est une année bissextile car elle est divisible par 400
 2100 et 3000 ne sont pas bissextiles car elles ne sont pas divisibles
par 400.
 Ecrire un programme en Python qui permet de lire l’année
(entier), détermine et affiche si elle correspond à une année
bissextile ou non
Mohamed Aymen CHARRADA - ISET El KEF - Info1
Structures itératives
 Structures itératives (boucles)
 La notion d’itération est utilisée quand on doit exécuter un
traitement un certain nombre de fois qui peut être connu à
l’avance (boucles bornées) ou non (boucles non bornées)
 En Python,
 Une boucle bornée est exprimée en fonction de « for »

« interval » peut être une liste


for cpt in interval : discrète ou bien une suite
Traitement contenu de valeurs

 Une boucle non bornée est exprimée en fonction de « while »

while condition :
Traitement

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Structures itératives (boucles)
 Fonctionnement de la boucle « for »

Cpt = valeur initiale

non
Cpt est arrivé à sa
Traitement 1
valeur finale

oui

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Structures itératives (boucles)
 Fonctionnement de la boucle « while »

Si condition
Condition
est vraie

Si condition
est fausse
Traitement 1

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Structures itératives (boucles)
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Structures itératives (boucles)
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Boucles imbriquées
 C’est le cas où on trouve une boucle dans une autre boucle
 D'une manière générale, étant données deux boucles, deux
situations seulement peuvent exister : soit elles sont
disjointes, soit elles sont imbriquées
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Conversion des boucles
 Le passage d’une boucle « for » à une boucle « while » est
toujours possible selon la syntaxe suivante :
cpt = valeur_initiale
for cpt in interval : while cpt <= valeur_final :
Traitement Traitement
incrémentation_cpt
 Le passage d’une boucle « while » à une boucle « for »
n’est possible qu’à condition qu’on connait le nombre
d’itérations

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Conversion des boucles
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Instruction « continue »
 Elle est utilisée dans les boucles. Elle permet d’ignorer
l’itération actuelle et de passer à l’itération suivante de la
boucle
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Instruction « break »
 Elle est utilisée dans les boucles. Elle permet d’arrêter
l’exécution de la boucle et de sauter vers le reste du
programme
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 « Do … while » en Python ?
 Dans de nombreux langages, il existe une instruction
« do…while » qui permet de créer une boucle pour laquelle
on ne connaît pas à l’avance le nombre de répétition, mais
qui doit s’exécuter au moins une fois.
 Cette instruction n’existe pas en Python, mais on peut
facilement reproduire son fonctionnement de la façon
suivante :
do { whileTrue :
Traitement; Traitement
} while (condition); if (not condition) :
En Java break
En Python
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Exemple
 Lecture au clavier d’un entier « x » strictement
positif

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Utilisation de la clause « else » dans une boucle
 La clause « else » est utilisée dans une boucle pour
définir un bloc d’instructions qui sera exécuté à la fin
seulement si la boucle s’est déroulée complétement
sans être interrompue par un « break »
 Autrement dit, le bloc de la clause « else » est
exécuté lorsque la boucle se termine par épuisement
de la liste (avec « for » ) ou quand la condition
devient fausse (avec « while » ), mais pas quand la
boucle est interrompue par un « break »

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Utilisation de la clause « else » dans une boucle
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Activité 4
 Ecrire un programme Python qui permet lire au clavier la
valeur d’une variable entière « x » et d’afficher tous les
multiples de « 3 » qui se trouve dans l’intervalle [1 x]

 Solution

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Activité 5
 Écrire un programme Python permet de calculer « n! », avec
« n » un entier saisi au clavier
n! = 1 * 2 * … * n
 Solution

Mohamed Aymen CHARRADA - ISET El KEF - Info1


Types composites
 Les types de données composites
 Jusqu'à présent, on a vu comment manipuler des nombres
(entiers et réels) et des booléens
 Dans ce chapitre, on va découvrir les séquences (ou les
conteneurs).
 Une séquence est un conteneur ordonné et structuré
d'éléments indexés par des entiers indiquant leur position
dans le conteneur
 Python dispose de plusieurs types prédéfinis de séquences :
 Les intervalles (« range » vues précédemment);
 Les chaînes de caractères ;
 Les listes ;
 Les ensembles;
 Les tuples
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Les chaines de caractères
 Une chaine est une suite de caractères. En python, elle est
référencée avec la classe « str »
 Une chaine est comparable à un tableau de caractères
 La concaténation des chaines se fait avec le caractères « + »
 En Python, une chaine de caractères ne peut pas être
modifiée

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Les chaines de caractères
 Une chaine ne peut pas être concaténée avec une variable
numérique

 Dans ce cas, il faut transformer la variable numérique en chaine


avant de faire la concaténation

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Opérateurs sur les chaines de caractères
Exemple (A= "Hello" et
Opérateur Désignation
B = "World")
A+B donne la chaine "Hello
+ Concaténation de deux chaines
world"
A*2 donne la chaine
* Répétition d’une chaine
"HelloHello"
Accès au caractère d’indice A[0] donne le caractère 'H'
[i]
« i » de la chaine B[3] donne le caractère 'l'
Accès à la suite de caractères
A [1:3] donne "el"
qui commence à l’indice « i »
[i : j] A [:2] donne "He"
et se termine à « j-1 » de la
B [2:] donne "rld"
chaine
Test d’appartenance d’un e in A donne true
in / not in
caractère à la chaine d not in B donne false
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Exemple de fonctions prédéfinies des chaines
Fonction Désignation Exemple (A= "Hello")
Upper ( ) et Transformer la chaine appelante en A.upper ( ) → "HELLO"
lower ( ) majuscule ou en minuscule A.lower ( ) → "hello"
Supprimer tout espace au début ou à la
strip ( ) A.strip ( )
fin de la chaine appelante
Remplacer une sous-chaîne « X » par une A.replace ("H", "M")
replace (X, Y)
autre «Y» dans la chaine appelante A devient "Mello"
A.split (",") → A ne sera pas
Diviser la chaîne appelante en sous-
split (Sep) divisée car elle ne contient pas le
chaînes en fonction du séparateur « Sep »
caractère ","
Calculer le nombre d’apparition de la
count (X) sous-chaine « X » dans la chaine A.count ("o") → 1
appelante
Rechercher la sous-chaine « X » dans la
chaine appelante et retourner la position A.find ("H") → 0
find (X)
de sa première occurrence sinon la A.find ("wk") → -1
valeur
Mohamed Aymen CHARRADA - ISET El KEF «- Info1
-1 »
 Listes
 Une liste est une collection ordonnée et modifiable
d'éléments de même type ou de types différents
 Les éléments d’une liste peuvent être de type numérique,
booléen, chaine ou n’importe quel autre type
 Une liste est déclarée par une série de valeurs séparées par
des virgules, et le tout encadré par des crochets.

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Listes
 La taille d'une liste (le nombre d'éléments d’une liste) peut
être obtenu grâce à la fonction prédéfinie « len »
 On peut afficher une liste avec la fonction « print » et
obtenir son type avec la fonction « type »

 Les éléments d’une liste sont repérés à travers des indices


 Les indices des éléments d’une liste varient entre « 0 » et
« taille-1 »
 L’accès à un élément de la liste se fait à travers son indice
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Listes
 Exemple :

 On peut parcourir une liste à l'aide de la fonction « len » et


avec une boucle « while » (pour l’afficher par exemple)

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Listes
 On peut aussi parcourir une liste en utilisant une boucle
« for » optimisée :

« animal » va prendre les valeurs


successives des éléments de la
liste « animaux »

Cette méthode est préférable

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Listes
 En Python, on peut également utiliser un nombre négatif
comme indice, pour accéder aux éléments d'une liste à
partir de la fin
 Ainsi, l'indice « -1 » correspond au dernier élément de la
liste, l'indice « -2 » à l'avant-dernier…
 Pour parcourir tous les éléments d'une liste à l'envers :

0 1 2 3
indices -4 -3 -2 -1
‘girafe’ ‘tigre’ ‘singe’ ‘souris’
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Listes
 Il est possible d’extraire une sous-liste à partir d’une liste
 On utilise les crochets, en spécifiant deux indices, à savoir
celui du début (inclus) et celui de la fin (non inclus) de la
sous-liste à extraire, séparés par un deux-points « : »

 Si on ne précise pas de premier indice, la sous-liste


commencera au début de la liste. De même, ne pas indiquer
le second indice fera terminer la sous-liste au bout de la liste

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Listes
 A la différence des chaines, il est possible de modifier les
éléments d’une liste (ajout, modification, suppression)
 On peut insérer un ou plusieurs éléments au même temps
dans une liste
 Pour insérer un nouvel élément dans la liste, on peut utiliser
la méthode « insert » de la manière suivante :
nomListe.insert (position, valeur)
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Listes
 Notez que pour l’ajout en fin de la liste, on peut utiliser la
méthode « append » de manière suivante :
nomListe.append (valeur)
 Exemple

 On peut également remplacer ou insérer plusieurs éléments


en une fois, étant donné qu'on remplace une sous-liste par
une nouvelle liste

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Listes
 On peut aussi modifier un seule élément d'une liste

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Listes
 On peut supprimer un élément à partir de la liste en
utilisant la fonction « del »

ou bien avec la méthode « remove » qui prend l’élément à


supprimer comme argument et non pas son indice

NB : la méthode « remove » supprime uniquement la


première occurrence de la valeur mentionnée
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Listes
 Pour supprimer plusieurs éléments en une fois à partir de la
liste, on utilise la fonction « del » comme suit :

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Listes
 Il est possible de créer une nouvelle liste en concaténant
deux listes existantes. On utilise pour cela l'opérateur de
concaténation « + »

 On peut également construire une liste en répétant


plusieurs fois une liste, c'est-à-dire la concaténer plusieurs
fois d'affilée. On utilise pour cela l'opérateur de copie « * »

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Listes
 On peut tester l’appartenance d’un élément à une liste en
utilisant les opérateurs « in » et « not in »

 On peut trier une liste selon l’ordre lexicographique


croissant en utilisant la méthode « sort » : nomListe.sort ( )

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Listes
 Il est possible de copier une liste dans une autre liste en
utilisant le principe d’extraction des sous-chaines

 Attention, l’opérateur d’affectation « = » ne permet pas de


copier les listes

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Listes
 La première instruction crée une liste et la stocke dans la
variable « chiffres »
 La deuxième instruction créé une deuxième référence
appelée « aux » sur la même liste référencée par « chiffres »

0 1 2 3 4 5
10 5 7 8 12 14

chiffres
Une variable contient en fait une
aux
référence vers la zone mémoire où se
trouve stockée sa valeur, et non pas la
valeur directement

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Listes
 On peut comparer deux listes en utilisant l’opérateur
« == »
 Deux listes sont égales si elles possèdent le même nombre
d'éléments et que ceux situés aux mêmes indices sont égaux
 On peut également comparer deux listes en utilisant les
opérateurs « > », « < » , « >= » et « <= »
 Dans ce cas, les listes sont comparées en suivant l'ordre
lexicographique

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Listes
 Exemples de comparaison

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Activité 6
 Etant donnée la liste des entiers suivante :
« L1 = [10, 17, 8, 14, 87, 54] »
donnez les instructions Python qui permettent
d’effectuer les actions suivantes :
 Ajouter l’élément « 21 » à la fin de la liste « L1 » ;
 Insérer l’élément « 5 » à la « 3ème » position de la liste « L1 » ;
 Afficher l’avant dernier élément de la liste « L1 » ;
 Afficher la sous-liste du « 3ème » au « 5ème » élément de la liste
« L1 » ;
 Afficher la sous-liste du début au « 3ème » élément de la liste « L1 » ;
 Afficher la sous-liste du « 3ème » élément à la fin de la liste « L1 » ;
 Supprimer le « 2ème » élément de la liste « L1 » ;

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Activité 6
 Etant donnée la liste des entiers suivante :
« L1 = [10, 17, 8, 14, 87, 54] »
donnez les instructions Python qui permettent d’effectuer
les actions suivantes :
 Définir une deuxième liste « L2 » qui contient en ordre les éléments
suivants : 14, 47, 20. Puis, remplacer le « 2ème » et le « 3ème »
éléments de la liste « L1 » avec les éléments de la liste « L2 » ;
 Afficher élément par élément le contenu de la liste « L1 » en
utilisant une boucle « while » puis en utilisant une boucle « for »

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Correction

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Tuples
 Python propose un type de données appelé « tuple », qui
est assez semblable à une liste mais qui n’est pas modifiable
 Un tuple peut être homogène ou hétérogène
 Du point de vue syntaxique, un tuple est une collection
d’éléments séparés par des virgules qui peuvent être
entourés avec des parenthèses :

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Tuples
 Les opérations que l’on peut effectuer sur des tuples sont
syntaxiquement similaires à celles que l’on effectue sur les
listes, sauf que les tuples ne sont pas modifiables (pas
d’ajout, pas de suppression, pas de modification)
 Il faut toujours au moins une virgule pour définir un tuple :
un tuple qui contient un seul élément se termine avec une
virgule

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Ensembles (sets)
 Un ensemble (set) est une collection non ordonnée, non
modifiable (un élément d’un ensemble ne peut pas être
modifié), non indexée et sans doublons d’éléments
 Un ensemble est déclaré par une série de valeurs, de même
type ou de types différents, séparées par des virgules, et le
tout encadré par des accolades
 Les éléments d’un ensemble peuvent être de type
numériques, chaines, booléens, tuples … En revanche, ils ne
peuvent pas être de types mutables tels que des listes, des
ensembles ou des dictionnaires

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Ensembles (sets) Création d’un
ensemble vide
 Exemple

Les éléments ne sont


pas affichés dans le
même ordre

Les doublons sont


éliminés

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Exemple de fonctions prédéfinies pour les ensembles
Exemple
Fonction Désignation
A = {1, 4, 8, 12, 10}
Elle retourne la taille (nombre d’éléments) len (A)
len (S)
de l’ensemble « S » Retourne « 5 »
Elle ajoute un seul élément « val » à A.add (3) → « A » devient
add (Val)
l’ensemble appelant {1,4,8,3,12,10}
Elle ajoute plusieurs éléments à l’ensemble A.update ({9, 5})
update (X) appelant. « X » peut être une liste, un tuple « A » devient {1, 9, 4, 8, 5,
ou un ensemble 12, 10}
Elle permet de supprimer un élément
A.discard (8)
remove (Val) « Val » de l’ensemble. Si l’élément à
« A » devient {1,4,12,10}
et supprimer n’est pas présent dans
A.remove (20)
discard (Val) l’ensemble, la fonction « discard » ne fait
Génère une erreur
rien alors que « remove » génère une erreur
Elle supprime tous les éléments de A.clear ( )
clear ( )
l’ensemble appelant « A » est vidé
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Exemple de fonctions prédéfinies pour les ensembles
Exemple
Fonction Désignation A = {1, 4, 8, 12, 10}
B = {1, 10, 5, 7, 15}
L’union de deux ensembles fournit un A.union (B)
union ( ) ensemble résultat contenant les éléments Résultat est {1, 4, 8, 12, 10, 5,
des deux ensembles 7, 15}
L’intersection de deux ensembles fournit
A.intersection (B)
intersection ( ) un ensemble résultat contenant les
Résultat est {1, 10}
éléments communs des deux ensembles
La différence de deux ensembles est un
ensemble contenant les éléments qui se A.difference (B)
difference ( )
trouvent dans l’ensemble 1 et Résultat est {4, 8, 12}
n’appartient pas au 2ème ensemble
A.symmetric_difference
symmetric_diff La différence symétrique de deux (B)
erence ( ) ensembles est l’inverse de l’intersection Résultat est {4, 8, 12, 5, 7,
Mohamed Aymen CHARRADA - ISET El KEF - Info1
15}
 Dictionnaire
 Les types de données composites que nous avons abordés
jusqu’a présent (chaînes, listes, sets et tuples) étaient tous
des séquences, c’est-a-dire des suites d’éléments simples
 Les dictionnaires est un type composite, mais ils
n'appartiennent pas aux séquences
 Un dictionnaire représente une collection de couples (clé :
valeur) entourée d'accolades, les couples sont séparés par
des virgules
 Les dictionnaires sont modifiables, mais non ordonnés : les
couples enregistrés n'occupent pas un ordre donné
 Une clé pourra être alphabétique, numérique ou tuple. Les
valeurs pourront être de tout type sans exclusion
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Dictionnaire
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Dictionnaire
 Dans un dictionnaire, les clés doivent être uniques

 L’accès à une valeur du dictionnaire se fait à travers sa clé

 Les valeurs dans un même dictionnaire peuvent être de types


différents

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Dictionnaire
 L’insertion d’un couple avec une clé qui existe déjà dans le
dictionnaire ne fait que mettre à jours la valeur
correspondante

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Dictionnaire
 On peut supprimer un couple d’un dictionnaire à travers sa
clé, on peut aussi vider totalement un dictionnaire et on
peut même supprimer définitivement un dictionnaire

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Dictionnaire
 La fonction « len » permet de calculer et retourner le
nombre de couples dans un dictionnaire

 On peut copier un dictionnaire dans un autre à l’aide de la


fonction « copy »

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Dictionnaire
 Le parcours d’un dictionnaire peut se faire en utilisant une
boucle « for » et une variable de parcours (qui va parcourir
la liste des clés et non pas des valeurs)

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Dictionnaire
 On peut tester aussi si une clé existe dans un dictionnaire ou
non à travers l’opérateur « in »

 On peut récupérer une liste des clés ou bien une liste des
valeurs d’un dictionnaire

Mohamed Aymen CHARRADA - ISET El KEF - Info1


Modules et fonctions
 Fonctions prédéfinies
 En Python, comme dans les autres langages, il est commode
de découper un programme important en plusieurs fichiers
de taille modeste pour en faciliter la maintenance et réduire
la complexité
 Un programme sera alors composé de :
 Un code principale (programme principale)
 Un ou plusieurs sous programmes (fonctions)
 Ces fonctions peuvent être :
 Prédéfinies et fournis avec le langage
 Codées par les développeurs
 En Python, les fonctions prédéfinies sont réparties en deux
familles : Fonctions intégrées au langage et fonctions
non intégrées
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Fonctions prédéfinies
 Les fonctions prédéfinies intégrées au langage sont
seulement celles qui sont susceptibles d’être utilisées très
fréquemment
 Exemple : « print », « input », « type », « range », « len », …

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Modules
 Les fonctions prédéfinies non intégrées au noyau du langage
sont des fonctions préprogrammées regroupées dans des
fichiers séparés appelés modules (ou bibliothèques)
 Chaque module regroupe un ensemble de fonctions
prédéfinies ayant un lien sémantique entre elles
 Exemple
 Le module « math » contient les définitions de nombreuses
fonctions mathématiques telles que « sin », « cos », « tan », « sqrt »…
 Le module « time » contient des fonctions permettant de travailler
avec le temps telles que « timezone », « localtime », « daylight »…

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Modules
 Pour pouvoir utiliser une fonction prédéfinies non intégrées
au corp du langage, il faut l’importer en utilisant la syntaxe
suivante :
from nom_module import nom_fonction
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Modules
 On peut importer plusieurs fonctions appartenant au même
module en une seule instruction. Dans le cas où les fonctions
appartiennent à différents modules, cette opération devient
fausse
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Modules
 On peut aussi importer toutes les fonctions appartenant à un
module donné en une seule instruction
 Exemple

Cette ligne indique à Python qu’il faut inclure dans le


programme courant toutes les fonctions du module « math »

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Modules
 Ci-joint une liste de modules de base du langage Python
 random : fonctions permettant de travailler avec des valeurs
aléatoires
 math : toutes les fonctions utiles pour les opérations
mathématiques
 sys : fonctions systèmes
 os : fonctions permettant d'interagir avec le système d'exploitation
 time : fonctions permettant de travailler avec le temps
 calendar : fonctions de calendrier
 profile : fonctions permettant d'analyser l’exécution des fonctions
 urllib2 : fonctions permettant de récupérer des informations sur
internet
 re : fonctions permettant de travailler sur des expressions régulières

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Modules
 La fonction « dir » est une fonction prédéfinies intégrée qui
permet de fournir la liste de tous les sous-modules, les
fonctions et les variables définies dans un module
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Activité 7
 Ecrire un script « Python » qui permet de lire au clavier les
valeurs de deux variables entières « X » et «Y » et qui
permet de calculer et d’afficher la valeur de l’expression
suivante :
(𝑋 2 + 𝑌 2 )
 En utilisant les deux fonctions prédéfinies « sqrt » et « pow » du
module « math »

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Fonctions
 Une fonction est un bloc d’instructions organisé et
autonome qui permet d’effectuer une tâche précise et qui
peut être réutilisée à travers le mécanisme d’appel_retour
 L’utilisation des fonctions offre une meilleure modularité
pour les programmes et un degré élevé de réutilisation du
code
 En Python, les fonctions sont définies comme suit :

def nom_Fonction (liste de paramètres) :


...
bloc d'instructions
return résultat # instruction facultative

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Fonctions
 Une fonction est définit avec le mot clé « def », suivi de son
nom, d'une liste de paramètres et du caractère deux-points
(:) et enfin d'un bloc de code représentant son corps
 Une fonction peut renvoyer des valeurs. Dans ce cas, elle
doit se terminer par l’instruction « return » suivie des noms
de variables contenant le résultat de la fonction
 Une fonction peut ne pas avoir de valeur de retour
 La liste des paramètres représentent les données d’entrée
nécessaires au bon déroulement de la fonction, séparés par
des virgules « , ». Cette liste peut être vide. Dans ce cas, on
dit que la fonction n’a pas de paramètres

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Fonctions
 Exemple

Fonction avec valeur Fonction sans valeur de Fonction sans


de retour retour arguments

 Une fois définie, une fonction s’utilise pratiquement à


travers des appels
 L’appel d’une fonction suit la syntaxe suivante :
nom_fonction (liste paramètres)
 Attention: Dans un script, la définition des fonctions doit
précéder leur utilisation
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Fonctions
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Fonctions
 Une fonction peut renvoyer une ou plusieurs valeurs
 Si elle retourne une seule valeur, elle doit se terminer par
l’instruction « return » suivie du nom de la variable
contenant le résultat
 Si elle retourne plusieurs valeurs, elle doit se terminer par
l’instruction « return » suivie des nom de variables
contenant les résultats, séparés par des virgules « , »

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Fonctions
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Fonctions
 Un paramètre d’une fonction peut avoir une valeur par
défaut
 Cela permet, lors de l'appel, de ne pas avoir à spécifier les
paramètres correspondants

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Fonctions
 Attention : Il faut regrouper tous les paramètres avec
valeurs par défaut à la fin de la liste des paramètres

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Fonctions
 Dans la plupart des langages de programmation, les
arguments fournis lors de l’appel d’une fonction doivent
respecter le même ordre des paramètres spécifié dans la
définition de la fonction
 A ce niveau, Python est plus souple : Si les paramètres
annoncés dans la définition de la fonction ont reçu chacun
une valeur par défaut, on peut faire appel à la fonction en
fournissant les arguments correspondants dans n’importe
quel ordre, à la condition de désigner nommément les
paramètres correspondants

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Fonctions
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Fonctions
 Une fonction peut avoir un nombre arbitraire d’arguments
(non connu au moment de la définition de la fonction)
 Le passage d'un nombre arbitraire d'arguments est permis en
utilisant la notation d'un argument final (généralement
nommé « *args »)
 Lors de l’appel, les paramètres sont transmis et affectés à
l’argument « *args »

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Fonctions
 Exemple

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Porté des variables
 En Python, lorsqu'on travaille avec des fonctions, il faut
distinguer deux sortes de variables : les locales et les
globales
 Une variable globale est définie pour tout le programme;
elle est initialisée en dehors de toute fonction
 Une variable locale est définie dans le corps d'une
fonction, elle n’est utilisable que dans sa fonction

Variable locale

Variable globale
Mohamed Aymen CHARRADA - ISET El KEF - Info1
 Fonctions
 Une variable globale et une autre locale peuvent avoir le
même nom. Dans ce cas, la variable globale n’est plus
accessible dans la fonction où définit la variable locale
portant le même nom (Exemple 1)
 Plusieurs variables locales peuvent avoir le même nom, à
condition qu'elles soient dans des fonctions différentes
(exemple 2)

Exemple 1 Exemple 2

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Activité 8
 Donnez les résultats des scripts suivants :
L'exécution de ce Ce code affiche la
code provoquera valeur de « a »
une erreur, car la (12)
variable « a » est
locale à la fonction
« fun », elle ne peut
pas être utilisée
ailleurs
Ce code affiche :
dans fun : 42
en dehors de fun : 12

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Activité 8 (suite)
 Donnez les résultats des scripts suivants :

L'exécution de ce code produit une erreur :


L'interpréteur Python signale que la
variable locale « a » est utilisée avant d'avoir
été initialisée

Mohamed Aymen CHARRADA - ISET El KEF - Info1


 Activité 9
 On veut modifier la valeur d’une variable globale dans une
fonction. Dites si le code suivant est correcte ou non? S’il est
correcte, quel est le résultat de son exécution?
Exacte
Il affiche 12

Il affiche 42

Mohamed Aymen CHARRADA - ISET El KEF - Info1


Mohamed Aymen CHARRADA - ISET El KEF - Info1

Vous aimerez peut-être aussi