為什么return時無法運算
def average(*args):
? ? sum=0.0
? ? x=0.0
? ? if len(args)==0:
? ? ? ? return sum
? ? else:
? ? ? ? for a in args:
? ? ? ? ? ? sum=sum+a
? ? ? ? ? ? x=x+1.0
? ? ? ? average=sum/x
? ? ? ? return average
print average()
print average(1, 2)
print average(1, 2, 2, 3, 4)
↑這樣不會報錯,但是如果把倒數第四行和倒數第五行,也就是
average=sum/x return?average
合成一行,變成
return?average=sum/x
就會報錯
請問是哪里出的問題?
2019-04-08
return后面只能返回變量,不能在return后面賦值
2019-02-26
只提示語法錯誤。
題主問的也有問題,return的時候,并不是不可以計算,return sum/x 就是先計算再成功返回。
我理解題主想問的是,為什么return語句后面不能跟一個賦值等式。有些語言里是允許這樣寫的,我記得php就可以。但這可能就是語言間不一樣的地方。
既然是語法錯誤,那就是python的解釋器就不允許這種書寫形式,題主也就不用糾結背后有什么其它原因了。
2019-02-26
語法錯誤? 應該改成 return sum / x
2019-02-26
直接寫return?
sum
/
x 就可以了。
2019-02-26
語法錯誤? 改成 return sum/x