Нечетная синтаксическая ошибка в Python: неверный синтаксис - PullRequest
0 голосов
/ 19 сентября 2018

Так что по какой-то причине я продолжаю получать синтаксическую ошибку, и я не могу понять, почему.Когда я закомментирую строку, которая дает мне ошибку, через которую она распространяется, но когда я помещаю неприятный бит в новый файл, который он переносит, я не вижу ничего неправильного выше или ниже во всем коде синтаксически.

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 голосов
/ 19 сентября 2018

Вы не можете вернуть операцию присваивания, как 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
}
0 голосов
/ 19 сентября 2018

Оператор Python -= не возвращает возвращаемое значение.Также для += и т. Д.

Попробуйте:

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

Или вы не хотели менять блок?

def removeBlock(pos, blocks):
    return blocks[pos] - 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...