Adloun

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) * 2

Corrigé

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.