【问题标题】:why can't return assignment statement [duplicate]为什么不能返回赋值语句[重复]
【发布时间】:2016-07-19 14:34:44
【问题描述】:

在空闲时, 我写了一个函数并打算返回一个值。但它无法返回

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

SyntaxError: invalid syntax

为什么不能返回?但是当我改为

value = 100
return value

它可以工作

【问题讨论】:

  • 只写return 100 和return 0。 return 语句中不能有赋值 (=)。还要小心你的缩进
  • 返回作业没有任何意义,这就是原因。当你返回时,函数就结束了,所以分配给任何东西真的没有意义,因为它永远不可用。
  • 因为允许将赋值语句用作表达式会导致有害的错误。比较 return value == 1 与 return value = 1。
  • @jonrsharpe 并不是我以任何方式提倡这样做,但有一种情况下赋值会产生影响:如果您希望既返回一个值又将一个全局变量设置为该值.

标签: python


【解决方案1】:

在return statement 中,“return”之后只能有一个表达式。

return_stmt ::= "return" [expression_list]

分配是statement。不能在“return”后面加上语句,因为语句不是表达式。

考虑完全跳过作业。只需return 就足够了:

return 100

【讨论】:

    猜你喜欢
    • 2018-12-06
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 2019-04-12
    • 2015-04-24
    • 2010-11-23
    相关资源
    最近更新 更多