return ou print ?
Application directe du cours · niveau 2 · sciences numériques et technologie (seconde), chapitre 5 — Les fonctions · Définir et appeler une fonction
Énoncé
Ces deux fonctions se ressemblent. Donner l'affichage de chacun des quatre appels et expliquer l'écart.
def f(x):
return x + 1
def g(x):
print(x + 1)
print(f(3))
print(g(3))
a = f(3) * 2
b = g(3) * 2Corrigé
print(f(3)) affiche 4.
print(g(3)) affiche deux lignes : 4, écrit par le print interne de g, puis None — car g n'a pas de return et renvoie donc None, que le print externe affiche à son tour.
a = f(3) * 2 donne a = 8.
b = g(3) * 2 provoque une TypeError : on ne peut pas multiplier None par .
La distinction est la plus importante du chapitre. print montre une valeur à l'utilisateur ; return la rend disponible au programme. Seule une valeur renvoyée peut être stockée, additionnée, réutilisée. Une fonction qui se contente d'afficher est un cul-de-sac.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.