我在tic-tac-toe游戏中不断收到此错误:TypeError: unsupported operand type(s)
%
:<
“list'
和'int'
”。
我有一个“turn”变量来计算已经过的回合数,并且有一个充当棋盘的字符串列表。
鉴于此代码:
def x_or_o(t):
"""Check the number of turns for an even number and return a string."""
if t % 2 == 0:
return 'O'
else:
return 'X'
def place_char(i, t, brd):
"""Change the value of an item in the board list from an 'e' to an 'X' or
'O'."""
brd[int(i) - 1] = '{}'.format(x_or_o(t))
def turn(t, brd):
"""Read player input and print symbol onto the board."""
print("Player {}'s turn.".format(x_or_o(t)))
p_input = input('1-9: ')
check_quit(p_input)
if brd_empty(p_input, brd):
place_char(p_input, brd, x_or_o(t))
# brd[int(p_input) - 1] = '{}'.format(x_or_o(t))
...
当我在place_char()
的{{1}}语句中使用if
时,我得到turn()
。但是,当我将TypeError
的行直接复制并粘贴到place_char()
时,我的代码运行正常。
为什么在使用该功能时会出现错误,但在使用该功能的代码时却没有?
答案 0 :(得分:0)
def place_char(i, brd, xo):
"""Change the value of an item in the board list from an 'e' to an 'X' or
'O'."""
brd[int(i) - 1] = '{}'.format(xo)
您可以尝试使用此方法替换place_char
方法。
方法中的错误:
place_char(i, t, brd)
中订单不同x_or_o
内t
再次呼叫place_char
,但您已将x_or_o(t)
的输出传递给place_char
方法