因此,无论出于何种原因,我总是收到语法错误,而且似乎无法弄清原因。当我注释掉导致错误传播的那一行时,但是当我将麻烦的地方放到一个新文件中时,它就会通过,并且在语法上我都看不到任何错误。
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:语法无效
它出现在此代码的第二行。
答案 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
}