Я создавал это TacTic Toe приложение на основе искусственного интеллекта - PullRequest
0 голосов

Я создавал это приложение TacTic Toe на основе искусственного интеллекта в python, оно работало отлично, но как только я обновил версию python, он показывает ошибку со следующим сообщением

(pylint) E0001: неверный синтаксис

вот оригинальный код

def print_board():
x = 0
for i in range(0,3):
    print "  "+board[x]+ " | "+board[x+1]+ " | " +board[x+2]
    x+=3

    if(x<8):
        print"-----------"
    else:
        print 

фактическая ошибка, отображаемая только в этой строке

   print "  "+board[x]+ " | "+board[x+1]+ " | " +board[x+2]

помогите пожалуйста исправить

1 Ответ

0 голосов
/ 06 мая 2018

Ошибка Pylint E0001 означает, что синтаксис недопустим в соответствии с интерпретатором Python. На самом деле это не ошибка linting, а неверная программа.

Операторы печати требуют скобки начиная с Python 3 и далее, например:

print("  "+board[x]+ " | "+board[x+1]+ " | " +board[x+2])

Это, скорее всего, исправит ошибку E0001. Хотя это не является строго обязательным, я бы рекомендовал сделать шаг вперед, чтобы этот код читался немного больше, как идиоматический код на Python, и использовал функцию строкового формата. Это также имеет побочный эффект приведения значений board к строкам, что предотвратит ошибки типов, если содержимое board не является строковым.

print("  {} | {} | {}".format(board[x], board[x+1], board[x+2]))

Если вы используете Python 3.6 или более позднюю версию, вы можете сделать еще один шаг и использовать синтаксис строки встроенного формата, например:

print(f"  {board[x]} | {board[x+1]} | {board[x+2]}")
...