utiliser return et print

Le problème exposé dans ce sujet a été résolu.

Bonjour,

Je suis en train d'apprendre les fonctions et je voulais savoir dans quelle situation utiliser un

1
print

et dans quel cas utiliser

1
return

Par exemple, j'ai essayé les codes suivants :

1
2
3
4
5
def maFonction(mult1, mult2):

    resultat = mult1 * mult2

    return resultat
1
2
3
4
5
def maFonction(mult1, mult2):

    resultat = mult1 * mult2

    print("la réponse est ", resultat)
1
2
3
4
5
def maFonction(mult1, mult2):

    resultat = mult1 * mult2

    return print("la réponse est ", resultat)
1
2
3
4
5
def maFonction(mult1, mult2):

    resultat = mult1 * mult2

    return "la réponse est ", resultat

lesquelles sont fausses, et pourquoi ?

Merci :)

La syntax return permet de retourner une seule valeur à t'as fonction alors que print l'affiche.
C'est plus simple à comprendre avec un langage fort typé comme le C :

1
2
3
4
5
6
7
int myFirstFunction() {
    return 1;
}

void mySecondFunction() {
    printf("Hello world");
}
+0 -13

Il faut bien comprendre qu'une fonction peut avoir un autre but qu'afficher le résultat (ce que fait print).

Par exemple, imaginons une fonction addition, prenant deux nombres et en retournant la somme. Cette fonction utilise return pour retourner le bon résultat, et print en est banni, on ne veut pas qu'un texte soit imprimé à chaque utilisation de la fonction, ce n'est pas son but.

1
2
def addition(a, b):
    return a + b

De manière générale, on dit qu'un fonction fait une et une seule chose. Tu as donc des fonctions qui vont faire les calculs et d'autres fonctions qui vont gérer les affichages. Et ces dernières fonctions d'affichages doivent utiliser les fonctions de calculs pour opérer correctement. :)

+1 -0

Pour revenir sur ce qui a été dit avant, il est mieux en effet de return dans une fonction : tu peux réutiliser le résultat que ta fonction génère, et rien ne t'empêchhe de print ce resultat ensuite

1
print ma_foncion(args)

Et pour revenir sur l'énormité plus haut, une fonction python peut retourner plusieurs résultats qui se capturent sous forme de tuple :

1
2
3
4
def ma_fonction(arg1,arg2):
    return arg1 + arg2, arg1 * arg2, arg1 - arg2

resultat1, resultat2, resultat3 = ma_fonction(1,2)

Ou encore :

1
resultat = ma_fonction(1,2)

La variable resultat sera ici un tuple à 3 valeurs accessibles comme ceci:

1
2
resultat[0]
resultat[1]...

Avec evidemment la possibilité de boucler dessus. Attention tout de fois, c'est bien un tuple et pas une liste.

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte