2016-07-19 6 views
-2

IDLEでは、 私は関数を記述して値を返すつもりです。返すことはできませんなぜ代入文を返すことができないのですか

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

SyntaxError: invalid syntax 

返品できないのはなぜですか?私はそれがreturn statement

+0

'return 100'と' return 0'と書いてください。 'return'ステートメントに**(=)**を代入することはできません。また、インデントに注意してください –

+3

割り当てを返すのは実際には意味がありません。そのためです。あなたが関数が返ってきたら、決してそれが利用できないので何かに割り当てることに意味がありません。 – jonrsharpe

+0

代入文を式として使用できるようにすると、悪質なバグが発生するためです。 'return value == 1'と' return value = 1'を比較してください。 – Dunes

答えて

3

を働かせることができる

value = 100 
return value 

に変更するときには、唯一の表現は、「リターン」の後に来ることができます。

return_stmt ::= "return" [expression_list]

割り当てはstatementあります。文が式ではないので、 "return"の後に文を置くことはできません。

割り当てを完全にスキップすることを検討してください。ただreturnで十分です:

return 100 
関連する問題