python中的奇怪sytax错误:无效的语法

时间:2018-09-19 04:30:27

标签: python syntax

因此,无论出于何种原因,我总是收到语法错误,而且似乎无法弄清原因。当我注释掉导致错误传播的那一行时,但是当我将麻烦的地方放到一个新文件中时,它就会通过,并且在语法上我都看不到任何错误。

def removeBlock(pos, blocks):
    return blocks[pos] -= 1
def addBlock(pos, blocks):
    return blocks[pos] += 1
def left(pos):
    return pos -= 1
def right(pos):
    return pos += 1
def done():
    return "quit"

actions = {
    "P": removeBlock,
    "D": addBlock,
    "L": left,
    "R": right,
    "X": done
}

错误是这样的:

  

SyntaxError:语法无效

它出现在此代码的第二行。

2 个答案:

答案 0 :(得分:0)

Python -=运算符未提供返回值。也适用于+=等。

尝试:

def removeBlock(pos, blocks):
    blocks[pos] -= 1
    return blocks[pos]

还是您要不更改阻止?

def removeBlock(pos, blocks):
    return blocks[pos] - 1

答案 1 :(得分:0)

您无法返回诸如return blocks[pos] -= 1之类的分配操作。返回return blocks[pos]-1或使用此blocks[pos] -= 1然后使用return blocks[pos]

请尝试以下操作:

def removeBlock(pos, blocks):
    blocks[pos] -= 1
    return blocks[pos]
def addBlock(pos, blocks):
    blocks[pos] += 1
    return blocks[pos]
def left(pos):
    pos -= 1
    return pos
def right(pos):
    pos += 1
    return pos
def done():
    return "quit"

actions = {
    "P": removeBlock,
    "D": addBlock,
    "L": left,
    "R": right,
    "X": done
}