0% ont trouvé ce document utile (0 vote)
7 vues38 pages

Fonctions et modules en Python

Transféré par

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

Fonctions et modules en Python

Transféré par

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

Bases de Python : Fonctions, modules et

importations
Parcours : Modélisation Simulation et Calcul Scientifique(L2S4)

TRAORE Urbain

Université virtuelle du Burkina Faso

28 avril 2023

28 avril 2023 1 / 38
Plan

1 Fonction en Python

2 Modules et importation

28 avril 2023 2 / 38
Motivation

Nous avons déjà rencontré diverses fonctions prédéfinies : print(),


input(), range(), len().
Lorsqu’une tâche doit être réalisée plusieurs fois par un
programme avec seulement des paramètres différents, on peut
l’isoler au sein d’une fonction. Cette approche est également
intéressante si la personne qui définit la fonction est différente de
celle qui l’utilise. Par exemple, nous avons déjà utilisé la fonction
print() qui avait été définie par quelqu’un d’autre.

Fonction en Python 28 avril 2023 3 / 38


Définition d’une fonction - def

Syntaxe
La syntaxe Python pour la définition d’une fonction est la suivante :

Vous pouvez choisir n’importe quel nom pour la fonction que vous
créez, à l’exception des mots-clés réservés du langage, et à la
condition de n’utiliser aucun caractère spécial ou accentué (le
caractère souligné "‘_"’ est permis). Comme c’est le cas pour les
noms de variables, on utilise par convention des minuscules,
notamment au début du nom (les noms commençant par une
majuscule seront réservés aux classes).

Fonction en Python 28 avril 2023 4 / 38


Corps de la fonction

Comme les instructions if, for et while, l’instruction def est une
instruction composée. La ligne contenant cette instruction se
termine obligatoirement par un deux-points : qui introduisent un
bloc d’instructions qui est précisé grâce à l’indentation. Ce bloc
d’instructions constitue le corps de la fonction.

Fonction en Python 28 avril 2023 5 / 38


Fonction sans paramètre

Affichage après exécution

Fonction en Python 28 avril 2023 6 / 38


Fonction sans paramètre

En entrant ces quelques lignes, nous avons défini une fonction très
simple qui compte jusqu’à 2. Notez bien les parenthèses, les
deux-points, et l’indentation du bloc d’instructions qui suit la ligne
d’en-tête (c’est ce bloc d’instructions qui constitue le corps de la
fonction proprement dite).
Après la définition de la fonction, on trouve le programme principal
qui débute par l’instruction print("bonjour"). Il y a ensuite au sein
du programme principal, l’appel de la fonction grâce à
compteur3().

Fonction en Python 28 avril 2023 7 / 38


Appel d’une fonction
Il est également possible de sauvegarder ce programme en tant
que script au sein d’IDLE en précisant l’extension .py :
[Link]. Après avoir exécuté ce script, pour utiliser à
nouveau la fonction que nous venons de définir, il suffit de
l’appeler par son nom au niveau du shell. Ainsi :

Nous pouvons maintenant réutiliser cette fonction à plusieurs


reprises, autant de fois que nous le souhaitons.
Nous pouvons également l’incorporer dans la définition d’une
autre fonction.
Fonction en Python 28 avril 2023 8 / 38
Fonction avec paramètre
Exemple

Affichage après exécution :

L’argument que nous utilisons dans l’appel d’une fonction peut être
une variable.
Fonction en Python 28 avril 2023 9 / 38
Fonction avec plusieurs paramètres

Exemple
La fonction suivante utilise trois paramètres : start qui contient la
valeur de départ, stop la borne supérieure exclue comme dans
l’exemple précédent et step le pas du compteur.

Fonction en Python 28 avril 2023 10 / 38


Note

• Pour définir une fonction avec plusieurs paramètres, il suffit


d’inclure ceux-ci entre les parenthèses qui suivent le nom de la
fonction, en les séparant à l’aide de virgules.
• Lors de l’appel de la fonction, les arguments utilisés doivent
être fournis dans le même ordre que celui des paramètres
correspondants (en les séparant eux aussi à l’aide de virgules).
Le premier argument sera affecté au premier paramètre, le
second argument sera affecté au second paramètre, et ainsi de
suite.

Fonction en Python 28 avril 2023 11 / 38


Variables locales, variables globales

Lorsqu’une fonction est appelée, Python réserve pour elle (dans la


mémoire de l’ordinateur) un espace de noms. Cet espace de noms
local à la fonction est à distinguer de l’espace de noms global où
se trouvait les variables du programme principal. Dans l’espace de
noms local, nous aurons des variables qui ne sont accessibles
qu’au sein de la fonction. C’est par exemple le cas des variables
start, stop, step et i dans l’exemple précédent.

Fonction en Python 28 avril 2023 12 / 38


Variables locales, variables globales

A chaque fois que nous définissons des variables à l’intérieur du


corps d’une fonction, ces variables ne sont accessibles qu’à la
fonction elle-même. On dit que ces variables sont des variables
locales à la fonction. Une variable locale peut avoir le même nom
qu’une variable de l’espace de noms global mais elle reste
néanmoins indépendante.
Les contenus des variables locales sont stockés dans l’espace de
noms local qui est inaccessible depuis l’extérieur de la fonction.

Fonction en Python 28 avril 2023 13 / 38


Variables locales, variables globales

Les variables définies à l’extérieur d’une fonction sont des variables


globales. Leur contenu est "‘visible"’ de l’intérieur d’une fonction,
mais la fonction ne peut pas le modifier.
Exemple

Affichage après exécution

Fonction en Python 28 avril 2023 14 / 38


Utilisation d’une variable globale - global
Il peut se faire par exemple que vous ayez à définir une fonction
qui soit capable de modifier une variable globale. Pour atteindre ce
résultat, il vous suffira d’utiliser l’instruction global. Cette
instruction permet d’indiquer - à l’intérieur de la définition d’une
fonction - quelles sont les variables à traiter globalement.
On va ici créer une fonction qui a accès à la variable globale b.

Affichage après exécution

Fonction en Python 28 avril 2023 15 / 38


Fonctions et procédures

Les fonctions que nous avons décrites jusqu’à présent ne sont pas
tout à fait des fonctions au sens strict, mais plus exactement des
procédures. Il existe des fonctions comme print qui ne retournent
rien (attention, retourner et afficher ne sont pas identiques) et des
fonctions, telles que input ou type qui retournent une valeur. Vous
pouvez capturer cette valeur en mettant une variable devant
(exemple variable2 = type(variable1)). En effet, les fonctions
travaillent en général sur des données et retournent le résultat
obtenu, suite à un calcul par exemple. Une « vraie » fonction (au
sens strict) doit en effet renvoyer une valeur lorsqu’elle se termine.
U

Fonction en Python 28 avril 2023 16 / 38


Fonctions et procédures

Voici un exemple extrêmement simple :

L’instruction return signifie qu’on va retourner la valeur, pour


pouvoir la récupérer ensuite et la stocker dans une variable par
exemple. Cette instruction arrête le déroulement de la fonction, du
code placé après le return ne s’exécutera pas.

Fonction en Python 28 avril 2023 17 / 38


Valeurs par défaut pour les paramètres

Dans la définition d’une fonction, il est possible de définir un


argument par défaut pour chacun des paramètres. On obtient ainsi
une fonction qui peut être appelée avec une partie seulement des
arguments attendus.
Exemples

Fonction en Python 28 avril 2023 18 / 38


Valeurs par défaut pour les paramètres

Exemples

Lorsque l’on appelle cette fonction en ne lui fournissant que le


premier argument, le second reçoit tout de même une valeur par
défaut. Si l’on fournit les deux arguments, la valeur par défaut pour
le deuxième est tout simplement ignorée.

Fonction en Python 28 avril 2023 19 / 38


Arguments avec étiquettes

Dans la plupart des langages de programmation, les arguments


que l’on fournit lors de l’appel d’une fonction doivent être fournis
exactement dans le même ordre que celui des paramètres qui leur
correspondent dans la définition de la fonction.
Python autorise cependant une souplesse beaucoup plus grande.
Si les paramètres annoncés dans la définition de la fonction ont
reçu chacun une valeur par défaut, sous la forme déjà décrite
ci-dessus, 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.

Fonction en Python 28 avril 2023 20 / 38


Arguments avec étiquettes

Exemples

Fonction en Python 28 avril 2023 21 / 38


Utilisation des fonctions dans un script

Pour cette première approche des fonctions, nous n’avons utilisé


jusqu’ici que des fonctions dans des scripts et pas de programme
principal dans le script. Veuillez donc essayer vous-même le petit
programme ci-dessous, lequel calcule le volume d’une sphère a
l’aide de la formule :
4
V = πR 3 .
3
Exemples

Fonction en Python 28 avril 2023 22 / 38


Utilisation des fonctions dans un script

A bien y regarder, ce programme comporte deux parties :


• les deux fonctions cube() et volume_sphere()
• le corps principal du programme.
Dans le corps principal du programme, il y a un appel de la fonction
volume_sphere().
A l’intérieur de la fonction volume_sphere(), il y a un appel de la
fonction cube().

Fonction en Python 28 avril 2023 23 / 38


Utilisation des fonctions dans un script

Notez bien que les deux parties du programme ont été disposées
dans un certain ordre :
• d’abord la définition des fonctions,
• et ensuite le corps principal du programme.
Cette disposition est nécessaire, parce que l’interpréteur exécute
les lignes d’instructions du programme l’une après l’autre, dans
l’ordre où elles apparaissent dans le code source. Dans le script, la
définition des fonctions doit donc précéder leur utilisation.

Fonction en Python 28 avril 2023 24 / 38


Fonctions et procédures

Dans cette page, nous allons répondre aux questions suivantes :


• comment utiliser une même fonction dans plusieurs
programmes différents ?
• comment avoir la définition d’une fonction dans un fichier
différent de celui qui contient le programme principal ?
Très souvent, c’est une personne qui définit une fonction et une
autre qui l’utilise. Par exemple, avec la bibliothèque matplotlib, on
peut utiliser la fonction plot() pour tracer des courbes sans avoir à
écrire nous-mêmes cette fonction. Nous allons donc voir à présent
comment définir des fonctions dans un module et faire en sorte
qu’un utilisateur puisse appeler ces fonctions dans son
programme.

Modules et importation 28 avril 2023 25 / 38


Modules et importations

Par exemple, nous allons créer un fichier nommé [Link] qui


va définir 2 fonctions : carre() et cube(). Un tel fichier est appelé un
module et il va pouvoir être importé dans un autre fichier, et en
particulier dans le fichier qui contient le programme principal.

Modules et importation 28 avril 2023 26 / 38


Modules et importations

Il est maintenant possible d’utiliser dans un programme principal


les fonctions qui ont été définies dans le module [Link].
Pour cela, il faut importer les fonctions à partir du module.
Exemple : on importe une seule fonction

Avertissement Le fichier [Link] doit être dans le même


répertoire que le programme principal (ou bien se trouver dans le
"‘path"’ de Python).

Modules et importation 28 avril 2023 27 / 38


Modules et importations

Modules et importation 28 avril 2023 28 / 38


Modules et importations

Avertissement Avertissement L’importation de toutes les


fonctions avec ∗ est fortement déconseillée. En effet, elle ne
permet pas d’avoir une vision claire des fonctions qui ont été
importées. Ceci est donc une source potentielle d’erreurs.
Exemple : on importe le module

Dans ce cas, il faut préciser le nom du module devant la fonction.

Modules et importation 28 avril 2023 29 / 38


Modules et importations

Exemple : on importe le module

Modules et importation 28 avril 2023 30 / 38


Package

Quand on a un grand nombre de modules, il peut être intéressant


de les organiser dans des dossiers. Un dossier qui rassemble des
modules est appelé un package (paquetage en français). Le nom du
package est le même que celui du dossier. Par exemple, on crée un
dossier package1 dans lequel on place le fichier [Link]
suivant :

Modules et importation 28 avril 2023 31 / 38


Package

On peut ensuite utiliser la fonction fonction1() définie dans


[Link], en important package1.module1 comme dans
l’exemple qui suit :

Il est aussi possible d’avoir des dossiers imbriqués, c’est-à-dire des


dossiers qui contiennent d’autres dossiers.

Modules et importation 28 avril 2023 32 / 38


Complements

Dans la documentation de Python, il est fait une distinction entre


script et module. Voici quelques précisions sur cette distinction.
En Python, lorsqu’on crée un fichier qui rassemble des instructions
au lieu de les taper une à une dans l’interpréteur, on appelle ce
fichier un script et on le sauvegarde avec une extension .py, par
exemple [Link].
Quand on est amené à travailler sur un programme long, il est utile
de séparer le programme en plusieurs fichiers. Certaines parties
peuvent alors être réutilisées par d’autres programmes.

Modules et importation 28 avril 2023 33 / 38


Complements

Il est par exemple possible d’effectuer la définition des fonctions


dans un fichier séparé pour ensuite les utiliser dans un script ou
dans l’interpréteur. Le fichier qui contient ces définitions a aussi
une extension .py, mais on appelle ce fichier un module.
Les modalités pour importer un module sont expliquées plus haut
dans cette page.
A l’intérieur d’un module, le nom du module (en tant que chaîne de
caractères) peut être obtenu grâce à la variable globale __name__.
Par exemple, si on utilise le module [Link] défini
précédemment, on a dans l’interpréteur :

Modules et importation 28 avril 2023 34 / 38


Complement

Un même fichier .py peut jouer le rôle de script ou de module


suivant son utilisation.
Exécution d’un module en tant que script
Quand on utilise un fichier en tant que script, la variable globale
__name__ prend pour valeur "‘__main__"’. Ceci permet d’avoir dans
le fichier un bloc d’instructions qui sera exécuté uniquement
lorsque le fichier est lancé en tant que script.

Modules et importation 28 avril 2023 35 / 38


Complements

Par exemple, pour le fichier [Link] suivant :

On peut lancer une exécution directe en tant que script et on


obtient alors :

Modules et importation 28 avril 2023 36 / 38


Complements

Ou bien on peut importer puissance2 en tant que module, par


exemple dans le fichier suivant :

Modules et importation 28 avril 2023 37 / 38

Vous aimerez peut-être aussi