2016-07-19 17 views
-2

In IDLE, Ich schreibe eine Funktion und beabsichtige, einen Wert zurückzugeben. aber es kann nicht zurückgebenWarum kann keine Zuweisungsanweisung

>>> def grade(value): 
    if value > 100: 
     return (value=100) 
    if value <0: 
     return (value=0) 

SyntaxError: invalid syntax 

warum kann nicht zurückgeben? aber wenn ich auf

value = 100 
return value 

verändern kann es funktionieren

+0

schreiben Sie einfach 'return 100' und' return 0'. Sie können keine Zuweisungen ** (=) ** in "return" -Anweisungen haben. Achten Sie auch auf Ihren Einzug –

+3

Es macht keinen Sinn, eine Aufgabe zurückzugeben, deshalb. Wenn du zurückkommst, ist die Funktion vorbei, also ist es wirklich sinnlos etwas zuzuweisen, da es nie verfügbar sein wird. – jonrsharpe

+0

Da das Zuweisen von Zuweisungsanweisungen als Ausdruck zu schädlichen Fehlern führt. Vergleichen Sie 'return value == 1' gegen' return value = 1'. – Dunes

Antwort

3

In einem return statement, nur ein Ausdruck nach der „Rückkehr“ kommen kann.

return_stmt ::= "return" [expression_list]

Eine Zuordnung ist ein statement. Sie können eine Anweisung nicht nach "return" setzen, da eine Anweisung kein Ausdruck ist.

Ziehen Sie in Betracht, die Zuweisung vollständig zu überspringen. Nur return genügt:

return 100 
Verwandte Themen