【问题标题】:SyntaxError trying to return the value of assignmentSyntaxError 试图返回赋值的值
【发布时间】:2018-10-16 02:25:45
【问题描述】:

假设我有一个带有列表参数的函数,并且在它的主体内我想通过这段代码修改传递的列表:

spy = [0,0,7]

def replace_spy(lista):
    return lista[2]=lista[2]+1

但它显示错误:SyntaxError: invalid syntax

【问题讨论】:

标签: python syntax-error assignment-operator


【解决方案1】:

赋值是一个语句,而不是一个表达式。它没有价值。所以你不能return赋值的值。

在所有允许允许这种事情的语言中,返回值究竟应该是什么是模棱两可的,但它们中的大多数——包括 C 和许多源自 C 或受 C 启发的语言——都会给出你lista[2]1 的新值。所以大概你想要这个:

def replace_spy(lista):
    lista[2]=lista[2]+1
    return lista[2]

如果您希望缩短内容,这会减少击键次数,并且可能更具可读性:

def replace_spy(lista):
    lista[2] += 1
    return lista[2]

1。作为“左值”,但这在 Python 中没有意义。

【讨论】:

  • 为了进一步缩短击键,OP 需要完全摆脱该功能,只需执行lista[2] += 1 :D
  • @cᴏʟᴅsᴘᴇᴇᴅ 嗯,是的,但是让我们假设这是一个稍微不那么琐碎的功能的 MCVE……
猜你喜欢
  • 2013-04-08
  • 2017-07-24
  • 1970-01-01
  • 1970-01-01
  • 2014-10-12
  • 2012-06-16
  • 1970-01-01
  • 2013-08-21
  • 1970-01-01
相关资源
最近更新 更多