Python au lycée (4) : Les fonctions Méthode

Utiliser return pour renvoyer une valeur

Durée estimée
5 minutes
Votre progression

Créez un compte gratuit pour suivre votre avancement et reprendre où vous avez laissé.

Créer un compte

Méthode

Pour renvoyer un résultat depuis une fonction avec return :

  1. Placer l'instruction return valeur à l'endroit où le calcul est terminé. Cette instruction quitte immédiatement la fonction et renvoie la valeur au programme appelant.
  2. Appeler la fonction depuis le programme principal et récupérer la valeur renvoyée dans une variable, ou l'utiliser directement dans un calcul ou dans un print.
  3. Ne pas confondre avec print : print affiche une valeur à l'écran, return la transmet au programme qui pourra la réutiliser.

return vs print sur une même fonction

Comparons deux fonctions qui « calculent » le triple d'un nombre :

def triple_return(x) :
    return 3 * x

def triple_print(x) :
    print(3 * x)

a = triple_return(4)    # a vaut 12
b = triple_print(4)     # affiche 12, mais b vaut None

Étape 1 : triple_return(4) renvoie la valeur 12. Cette valeur est rangée dans a, qui vaut donc 12 (type int).

Étape 2 : triple_print(4) affiche 12 à l'écran, mais ne renvoie rien. La variable b vaut None (valeur spéciale signifiant « rien »).

Étape 3 : On peut réutiliser a dans un calcul (a + 5 vaut 17), mais on ne peut pas réutiliser b : b + 5 provoque une erreur.

Réutiliser le résultat d'une fonction

On définit une fonction qui calcule l'aire d'un rectangle, puis on l'utilise pour comparer deux aires :

def aire_rectangle(L, l) :
    return L * l

a1 = aire_rectangle(5, 3)
a2 = aire_rectangle(4, 4)
if a1 > a2 :
    print("Le premier rectangle a la plus grande aire.")
else :
    print("Le second rectangle a la plus grande aire.")

Étape 1 : Chaque appel renvoie un nombre que l'on stocke dans une variable (a1 vaut $15$, a2 vaut $16$).

Étape 2 : On compare ensuite a1 et a2 dans une instruction conditionnelle. Si la fonction utilisait print au lieu de return, cette comparaison ne serait pas possible.

Étape 3 : Affichage : « Le second rectangle a la plus grande aire. »

Remarque

Une fonction peut contenir plusieurs return, dans des branches if/elif/else. Dès qu'un return est atteint, la fonction s'arrête et renvoie sa valeur. Par exemple :

def valeur_absolue(x) :
    if x >= 0 :
        return x
    else :
        return -x

Attention

Toute instruction placée après un return dans la même branche ne sera jamais exécutée. Par exemple :

def f(x) :
    return x * x
    print("Fin")    # cette ligne est inatteignable

Le print("Fin") ne s'affichera jamais, car return a déjà quitté la fonction.

Pour s'entraîner