Les fonctions
Pourquoi utiliser des fonctions ?
Lorsqu'on programme, on est souvent amené à effectuer plusieurs fois le même traitement.
Imaginons par exemple que l'on souhaite calculer l'aire d'un cercle :
import math
rayon1 = 12
cercle1 = math.pi * (rayon1 ** 2)
rayon2 = 7
cercle2 = math.pi * (rayon2 ** 2)
rayon3 = 24
cercle3 = math.pi * (rayon3 ** 2)
Cela fonctionne, mais on répète plusieurs fois le même calcul.
Une fonction permet de regrouper des instructions sous un même nom afin de pouvoir les réutiliser autant de fois que nécessaire.
On pourrait ainsi créer une fonction aire :
def aire(rayon):
resultat = math.pi * (rayon **2)
return resultat
Une fois cette fonction créée, nous pouvons l'utiliser avec autant de nombres que nous le souhaitons :
cercle1 = aire(12)
cercle2 = aire(7)
cercle3 = aire(24)
Une fonction est une brique de programme réutilisable.
On écrit le traitement une seule fois, puis on peut l'utiliser autant de fois que nécessaire.
Définir une fonction
En Python, une fonction est définie à l'aide du mot-clé def.
def aire(rayon):
#code indenté
Cette fonction peut être décomposée de la manière suivante :
def aire(rayon):
│ │ │
│ │ └── paramètre
│ │
│ └────── nom de la fonction
│
└─────────── mot-clé permettant de définir une fonction
Les instructions appartenant à la fonction sont indentées :
def aire(rayon):
resultat = math.pi * (rayon **2)
return resultat
Ici, les deux instructions indentées appartiennent donc à la fonction aire.
Les paramètres
Une fonction peut recevoir des informations dont elle a besoin pour travailler.
Ces informations sont appelées des paramètres.
Dans :
def aire(rayon):
resultat = math.pi * (rayon **2)
return resultat
rayon est un paramètre.
Sa valeur n'est pas fixée lorsque nous écrivons la fonction. Elle sera donnée lorsque nous utiliserons celle-ci.
Une fonction peut également posséder plusieurs paramètres.
Par exemple :
def addition(a, b):
resultat = a + b
return resultat
Cette fonction possède deux paramètres : a et b.
Retourner un résultat
Une fonction peut effectuer un calcul puis renvoyer son résultat.
Pour cela, on utilise le mot-clé return.
def addition(a, b):
resultat = a + b
return resultat
L'appel :
addition(5, 8)
retourne donc la valeur :
13
On peut récupérer cette valeur dans une variable :
somme = addition(5, 8)
La variable somme contient alors la valeur 13.
On peut également utiliser directement le résultat dans une autre opération :
resultat = addition(5, 8) * 2
return permet de renvoyer une valeur à l'endroit où la fonction a été appelée.
Cette valeur peut ensuite être stockée dans une variable, affichée ou utilisée dans un autre calcul.
Appeler une fonction
Écrire une fonction ne suffit pas à l'exécuter.
Pour utiliser une fonction, il faut l'appeler.
Si nous avons défini :
def aire(rayon):
resultat = math.pi * (rayon **2)
return resultat
nous pouvons ensuite écrire dans le programme principal :
cercle1 = aire(6)
print(cercle1)
Python effectue alors les étapes suivantes :
aire(6)
↓
rayon prend la valeur 6
↓
resultat = 3.14.... * ( 6 ** 2)
↓
return 113.1
↓
la valeur 113.1 est récupérée dans le programme principal
Ainsi :
cercle1 = aire(6)
revient à récupérer la valeur 113.1 dans la variable cercle1.
print et return : attention à ne pas les confondre
Il est important de distinguer afficher une valeur et retourner une valeur.
Observez ces deux fonctions :
def aire1(rayon):
resultat = math.pi * (rayon **2)
print(resultat)
def aire2(rayon):
resultat = math.pi * (rayon **2)
return resultat
La première fonction affiche le résultat :
aire1(6)
affiche la valeur :
113.1
La seconde fonction retourne le résultat :
resultat = aire2(6)
La valeur 113.1 est alors stockée dans resultat.
Des fonctions pour manipuler des listes
Un paramètre n'est pas forcément un nombre.
Une fonction peut recevoir une chaîne de caractères, un booléen ou encore une liste.
Par exemple :
def premier(liste):
return liste[0]
On peut alors appeler la fonction avec différentes listes :
premier([4, 7, 2])
premier([12, 18, 5, 9])
La même fonction peut donc travailler avec des données différentes.