2010-01-24 1 views
1

Прямо сейчас я работаю над игрой в тетрис (sorta, я нашел пример Tetris для Python на веб-сайте, я копировал его, но добавляю некоторые из своих собственных материалов), и только что закончил писать весь код, но имел пару синтаксических ошибок. Я смог исправить их все, но эта последняя синтаксическая ошибка сбивает меня с толку.Ошибка синтаксиса Python, но выглядит хорошо. Помогите?

def pieceDropped(self): 
     for i in range(4): 
      x = self.curX + self.curPiece.x(i) 
      y = self.curY - self.curPiece.y(i) 
      self.setShapeAt(x, y, self.curPiece.shape() 

     self.removeFullLines() 

Специфическая ошибка синтаксиса в последней строке функции, и я не понимаю, почему, отступы и пробелы все кажется правильным. Так может кто-нибудь объяснить, как это синтаксическая ошибка?

+0

Не забудьте ответить.^_- –

ответ

7

Вы не закрыли круглую скобку self.setShapeAt.

+0

ах. Благодарю. Не видел, что –

+2

Случается ко мне все время. Вначале сбивает с толку, что исключение происходит в строке * после * фактической ошибки, но это понятно, так как незамкнутые круглые скобки неявно служат продолжением строки. –

+0

Это имеет смысл сейчас. Спасибо за объяснение –

0

На последней строке есть дополнительные пробелы - впереди self.removeFullLines(). Таким образом, его отступы не совпадают с отступом линии for. EDIT: Кажется, теперь исправлено.

Всегда используйте одну и ту же последовательность отступов - выберите вкладки или пробелы n. Но будьте последовательны. Некоторые редакторы (например, VIM) могут вставлять соответствующее количество пробелов при каждом нажатии на вкладку.