108 votes

Quel est le but de la déclaration de retour ?

Quelle est l'explication de base simple de ce qu'est l'instruction return, comment l'utiliser en Python ?

Et quelle est la différence entre elle et le print déclaration ?

2 votes

11voto

BoRRis Points 643

Cette réponse passe en revue certains des cas qui n'ont pas été abordés ci-dessus.
Le site retourner vous permet de résilier l'exécution d'une fonction avant d'en atteindre la fin. Ainsi, le flux d'exécution revient immédiatement à l'appelant.

Dans la ligne numéro 4 :

def ret(n):
    if n > 9:
         temp = "two digits"
         return temp     #Line 4        
    else:
         temp = "one digit"
         return temp     #Line 8
    print("return statement")
ret(10)

Après l'exécution de l'instruction conditionnelle, le ret() La fonction est interrompue en raison de return temp (ligne 4). Ainsi, la print("return statement") n'est pas exécuté.

Sortie :

two digits   

Ce code qui apparaît après les déclarations conditionnelles, ou l'endroit que le flux de contrôle ne peut pas atteindre, est le code nul .

Retour des valeurs
Aux lignes 4 et 8, l'instruction return est utilisée pour renvoyer la valeur d'une variable temporaire après l'exécution de la condition.

Pour faire ressortir la différence entre imprimer et retourner :

def ret(n):
    if n > 9:
        print("two digits")
        return "two digits"           
    else :
        print("one digit")
        return "one digit"        
ret(25)

Sortie :

two digits
'two digits'

9voto

LondonRob Points 2075

Juste pour ajouter à l'excellente réponse de @Nathan Hughes :

Le site return peut être utilisée comme une sorte de flux de contrôle. En mettant une (ou plusieurs) return au milieu d'une fonction, on peut dire : "arrêtez d'exécuter cette fonction. Soit nous avons obtenu ce que nous voulions, soit quelque chose a mal tourné !".

Voici un exemple :

>>> def make_3_characters_long(some_string):
...     if len(some_string) == 3:
...         return False
...     if str(some_string) != some_string:
...         return "Not a string!"
...     if len(some_string) < 3:
...         return ''.join(some_string,'x')[:,3]
...     return some_string[:,3]
... 
>>> threechars = make_3_characters_long('xyz')    
>>> if threechars:
...     print threechars
... else:
...     print "threechars is already 3 characters long!"
... 
threechars is already 3 characters long!

Voir le Section Style de code du Guide Python pour plus de conseils sur cette manière d'utiliser return .

4voto

Andy Points 13

Je pense qu'une réponse très simple pourrait être utile ici :

return rend la valeur (une variable, souvent) disponible pour être utilisée par l'appelant (par exemple, pour être stockée par une fonction que la fonction utilisant return se trouve à l'intérieur). Sans return votre valeur ou votre variable ne sera pas disponible pour que l'appelant puisse la stocker ou la réutiliser.

print imprime à l'écran, mais ne rend pas la valeur ou la variable disponible pour être utilisée par l'appelant.

(En admettant pleinement que les réponses plus approfondies sont plus précises).

3voto

Pj_ Points 123

La différence entre "return" et "print" peut également être trouvée dans l'exemple suivant :

RETOUR :

def bigger(a, b):
    if a > b:
        return a
    elif a <b:
        return b
    else:
        return a

Le code ci-dessus donnera des résultats corrects pour toutes les entrées.

PRINT :

def bigger(a, b):
    if a > b:
        print a
    elif a <b:
        print b
    else:
        print a

NOTE : Ceci échouera pour de nombreux cas de test.

ERROR :

----  

FAILURE: Test case input: 3, 8.

            Expected result: 8  

FAILURE: Test case input: 4, 3.

            Expected result: 4  

FAILURE: Test case input: 3, 3.

            Expected result: 3  

You passed 0 out of 3 test cases

2voto

piotrektt Points 171

Voici ce que je comprends. (j'espère que cela aidera quelqu'un et que c'est correct).

def count_number_of(x):
    count = 0
    for item in x:
        if item == "what_you_look_for":
        count = count + 1
    return count

Ce simple morceau de code compte donc le nombre d'occurrences de quelque chose. Le placement du retour est significatif. Il indique à votre programme où vous avez besoin de la valeur. Ainsi, lorsque vous imprimez, vous envoyez la sortie à l'écran. Quand vous retournez, vous dites à la valeur d'aller quelque part. Dans ce cas, vous pouvez voir que compte = 0 est indenté avec le retour - nous voulons que la valeur (compte + 1) remplace 0. Si vous essayez de suivre la logique du code en indentant davantage la commande return, la sortie sera toujours 1, car nous ne dirons jamais au compte initial de changer. J'espère que j'ai bien compris. Oh, et return est toujours à l'intérieur d'une fonction.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X