代码:
引用:
Traceback (most recent call last):
File "C:\Users\COMPAQ\Desktop\NoughtsCrosses.py", line 149, in <module>
main ()
File "C:\Users\COMPAQ\Desktop\NoughtsCrosses.py", line 144, in main
move = computer_move(computer, board, human)
File "C:\Users\COMPAQ\Desktop\NoughtsCrosses.py", line 117, in computer_move
board[i] = computer
TypeError: 'str' object does not support item assignment
正如您在我的井字游戏程序中所见,computer_move 函数中的 board[i] = computer 行是导致错误的(如果我没看错的话)。但如果我知道这一点,列表中允许项目分配,并且我为我的函数创建了“board”的本地副本,以便我可以在函数内重新分配值和诸如此类的东西......
任何输入都将不胜感激。这是我的第一段正式代码,所以如果有问题的函数看起来太乱了
最佳答案
问题出在这里:
def computer_move (computer, board, human):
best = (4,0,8,2,6,1,3,5,7)
board = board [:]
for i in legal_moves(board):
board[i] = computer
if winner(board) == computer:
return i
board = EMPTY
在函数的末尾,您将 EMPTY
分配给 board
,但是 EMPTY
是一个空字符串,如第 4 行所定义的。我假设您的意思一定是 board[i] = EMPTY
。
关于python - 我如何摆脱这个 TypeError,为什么它会发生,因为我只是在列表中重新分配一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6099215/