Aller au contenu principal

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)
À retenir

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
À retenir

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.

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.