Les fonctions que nous avons écrites effectuaient des opérations, mais n'avaient cependant aucune influence sur la suite de l'exécution du programme. Supposons par exemple que nous ayons souvent besoin de calculer la valeur absolue d'un nombre, de cette façon :
if nombre < 0: distance = -nombre else: distance = nombre
Nous pouvons écrire une fonction qui prend en paramètre un nombre et calcule sa valeur absolue. Il nous faut cependant un moyen pour retransmettre cette valeur au programme. Au moment de l'appel, l'idée est de considérer dans le programme, qu'une fonction appelée a une valeur que l'on peut utiliser ensuite. Cette valeur, calculée par les instructions de la fonction, peut alors être affectée à une variable. On pourrait ainsi écrire notre programme en utilisant la fonction valeurAbsolue :
distance1 = valeurAbsolue(nombre1); distance2 = valeurAbsolue(nombre2);
Notre fonction valeurAbsolue prendrait en paramètre une valeur et retournerait sa valeur absolue. Voyons maintenant comment écrire une telle fonction.
Pour que la fonction puisse effectivement retourner une valeur, il faut
qu'elle contienne une instruction,
composée du mot-clé return
et de la valeur que l'on veut retourner.
L'instruction return
quitte la fonction et transmet la valeur qui suit au programme appelant :
def valeurAbsolue(valeur): if valeur >= 0: valAbsolue = valeur else: valAbsolue = -valeur return valAbsolue
Une telle fonction est ainsi comparable à la notion de fonction mathématique :
valeurAbsolue(x)
aura pour valeur la valeur absolue du contenu de la variable x.
Remarques : l'instruction return
Il est possible de mettre plusieurs instructions return
à l'intérieur d'une fonction.
Chacune d'entre elles doit être suivie d'une valeur
du format attendu.
Il est également important que quoi qu'il arrive dans la fonction, elle retourne une valeur,
donc exécute une instruction return
. Notre fonction peut ainsi s'écrire plus simplement :
def valeurAbsolue(valeur): if valeur < 0: return -valeur return valeur
Dans le cas des fonctions qui ne retournent pas de valeur,
il est également possible d'utiliser l'instruction return
. Elle n'est alors suivie d'aucune valeur
et a simplement pour effet de quitter la fonction immédiatement, lorsqu'elle est exécutée.
En réalité, en Python, toute expression a une valeur, et une absence de valeur vaut None
.