Valeurs de retour

6.5 Valeurs de retour

Objectifs d'apprentissage

À la fin de cette section, vous devriez être capable de :

  • Identifier la valeur de retour d'une fonction.
  • Utiliser des instructions return dans les fonctions pour renvoyer des valeurs.

Renvoyer une valeur depuis une fonction

Lorsqu'une fonction se termine, elle renvoie un résultat au code appelant. Une instruction return (return statement) termine l'exécution de la fonction et peut spécifier une valeur à renvoyer à l'appelant de la fonction. Les fonctions présentées jusqu'ici ne comportaient pas d'instruction return, ce qui équivaut à renvoyer None, représentant l'absence de valeur.

Faites le point

Renvoyer une valeur depuis une fonction

Concepts en pratique

Utiliser des instructions return

1.
Que renvoie calc_mpg(miles, gallons) ?
def calc_mpg(miles, gallons):
  mpg = miles/gallons
  return mpg
  1. mpg
  2. None
  3. Error
2.
Que renvoie calc_sqft() ?
def calc_sqft(length, width):
  sqft = length * width
  return
  1. sqft
  2. None
  3. Error
3.
Quelle est la différence entre hw_1() et hw_2() ?
def hw_1():
  print("Hello world!")
  return

def hw_2():
  print("Hello world!")
  1. hw_1() renvoie une chaîne de caractères, hw_2() non
  2. hw_1() renvoie None, hw_2() non
  3. aucune différence

Utiliser plusieurs instructions return

Les fonctions qui possèdent plusieurs chemins d'exécution peuvent utiliser plusieurs instructions return. Ex. : une fonction avec une instruction if-else peut avoir deux instructions return pour chaque branche. Les instructions Return terminent toujours la fonction et rendent le contrôle au code appelant.

Dans le tableau ci-dessous, calc_mpg() prend en entrée les miles parcourus et les gallons d'essence consommés, puis calcule le nombre de miles par gallon d'une voiture. calc_mpg() vérifie si gallons vaut 0 (afin d'éviter une division par 0) et, si c'est le cas, renvoie -1, une valeur souvent utilisée pour indiquer un problème.

def calc_mpg(miles, gallons):
  if gallons > 0:
    mpg = miles/gallons
    return mpg
  else:
    print("Gallons can't be 0")
    return -1
    
car_1_mpg = calc_mpg(448, 16)
print("Car 1's mpg is", car_1_mpg)
car_2_mpg = calc_mpg(300, 0)
print("Car 2's mpg is", car_2_mpg)
Car 1's mpg is 28.0
Gallons can't be 0
Car 2's mpg is -1
Tableau 6.1 Calcul des miles par gallon et vérification de la division par zéro.

Concepts en pratique

Instructions return multiples

4.
Que renvoie yarn_weight(3) ?
def yarn_weight(num):
  if num == 0:
    return "lace"
  elif num == 1:
    return "sock"
  elif num == 2:
    return "sport"
  elif num == 3:
    return "dk"
  elif num == 4:
    return "worsted"
  elif num == 5:
    return "bulky"
  else:
    return "super bulky"
  1. "lace"
  2. "dk"
  3. "super bulky"
5.
Quelle est la sortie ?
def inc_volume(level, max):
  if level < max:
    return level
    level += 1
  else:
    return level

vol1 = inc_volume(9, 10)
print(vol1)
vol2 = inc_volume(10, 10)
print(vol2)
  1. 9
    10
    
  2. 10
    10
    
  3. 10
    11
    

Utiliser des fonctions comme valeurs

Les appels de fonction produisent des valeurs et peuvent donc être utilisés dans des expressions. Un appel de fonction peut être combiné avec d'autres appels de fonction, des variables et des littéraux tant que la valeur de retour est compatible avec l'opération.

Faites le point

Utilisation d'appels de fonction dans des expressions

Concepts en pratique

Utilisation des valeurs de fonction

6.
Quelle est la nouvelle valeur de bill ?
def tax(total):
  return .06 * total

def auto_tip(total):
  return .2 * total

bill = 100.0
bill += tax(bill) + auto_tip(bill)
  1. 26.0
  2. 126.0
7.
Quelle est la valeur de val2 ?
def sq(num):
  return num * num

def offset(num):
  return num - 2

val = 5
val2 = sq(offset(val))
  1. 9
  2. 23

À vous d'essayer

Estimation du nombre de jours vécus

Écrivez une fonction, days_alive(), qui prend en paramètre un âge en années et renvoie le nombre estimé de jours vécus par l'utilisateur sous la forme d'un entier. Supposez que chaque année compte 365.24 jours. Utilisez round(), qui prend un nombre et renvoie l'entier le plus proche.

Écrivez ensuite un programme principal qui lit l'âge d'un utilisateur et affiche le résultat de days_alive().

Pour l'entrée :

    21

La sortie est :

    You have been alive about 7670 days.

À vous d'essayer

Calculer la moyenne de listes

Écrivez une fonction, avg_list(), qui prend en entrée une liste et renvoie la moyenne des valeurs de la liste.