Ошибка типа в Python: объект 'function' не является допустимым в Python - PullRequest
0 голосов
/ 28 апреля 2020

Я выполняю присвоение ti c -ta c -ee, и это ошибка, которую я получаю для следующего кода (объект 'function' не может быть подписан в Python):

testboard = ['0','X','O','X','O','X','O','X','O','X']
def dboard(board):
    print(board[7] +'|' + board[8] + '|' + board[9])
    print('-------')
    print(board[4] +'|' + board[5] + '|' + board[6])
    print('-------')
    print(board[1] +'|' + board[2] + '|' + board[3])
def choose():
    marker = ''
    while marker != 'X' and marker != 'O':
        marker = input('Player 1! Choose X or O ').upper()
    if marker == 'X':
        return ('X','O')
    else:
        return ('O','X')
def place(board,mark,position):
    board[position]=mark
def check(board,mark):
    if(board[7] == board[8] == board[9] == mark) or (board[1] == board[2] == board[3] == mark) or (board[4] == board[5] == board[6] == mark):
        return 'All rows are equal. You Win!'
    else:
        return 'Losers! Continue please' 

dboard(testboard)
check(dboard,'X')

Ответы [ 2 ]

1 голос
/ 28 апреля 2020

Ваша проблема заключается здесь:

check(dboard,'X')

dboard - это функция, а не переменная, которая ссылается на текущую плату. Вместо этого вы можете проверить свою тестовую доску с помощью такой функции.

check(testboard,'X')
0 голосов
/ 28 апреля 2020

Подписывать нечего. dboard это просто функция.

>>> dboard
<function dboard at 0x000001D4DB2CAE50>
>>> dboard[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'function' object is not subscriptable

Вам нужно передать список тестовых таблиц в функцию, check(testboard, 'X'), а не в функцию dboard. Списки являются подписными, и это список, который вы хотите подписать.

>>> check(testboard,'X')
'Losers! Continue please'
>>>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...