4.3. Fonctions¶
Une fonction est un bloc d’instructions que l’on peut appeler à tout moment d’un programme. Les fonctions ont plusieurs intérêts, notamment :
- la réutilisation du code : éviter de répéter les mêmes séries d’instructions à plusieurs endroits d’un programme ;
- la modularité : découper une tâche complexe en plusieurs sous-tâches plus simples.
4.3.1. Définir une fonction¶
Au cours des chapitres précédents, on a déjà rencontré de nombreuses fonctions telles que print
ou len
. Chacune de ces fonctions reçoit un argument et effectue une action (la fonction print
affiche un objet à l’écran) ou renvoie une valeur (la fonction len
renvoie la taille d’un itérable).
Jusqu’à maintenant, on s’est contenté de faire appel à des fonctions prédéfinies. Mais on peut également définir ses propres fonctions : il faut alors déclarer ces fonctions avant de les utiliser. De manière générale, la syntaxe d’une déclaration de fonctions est la suivante.
def <nom_fonction>(<paramètres>): # En-tête de la fonction
<instruction1>
<instruction2> # Corps de la fonction
...
return <valeur>
On décrit dans le corps de la fonction les traitements à effectuer sur les paramètres et on spécifie la valeur que doit renvoyer la fonction.
Considérons l’exemple simple suivant.
In [1]: def factorielle(n):
...: a = 1
...: for k in range(1, n+1):
...: a *= k
...: return a
...:
La fonction factorielle
prend en argument un objet n
(que l’on supposera être un entier naturel), calcule la factorielle de n
à l’aide d’une variable a
et renvoie cette valeur.
On constate que rien ne se passe lorsque la fonction est déclarée. Il faut appeler la fonction en fournissant une valeur à l’entier n
pour que le code soit exécuté.
In [2]: factorielle(5)
Out[2]: 120
In [3]: factorielle(7)