如何修复文本类井字棋游戏中的Tuple对象赋值错误
解决文本类井字棋游戏中的TypeError错误
错误原因
报错TypeError: 'tuple' object does not support item assignment的核心原因是:你定义的place是元组(tuple),而元组是Python中的不可变数据类型,无法直接修改其内部元素的值,代码里place[i] = "X"这行尝试修改元组元素,触发了这个错误。
修复方案
将place的定义从元组改为列表(list),列表是可变数据类型,支持元素赋值操作。
修改后的完整代码
import os import time board = [1,1,0,0,0,0,0,0,1] # nine spaces for the tic tac toe board # 把元组()改成列表[] place = [' ',' ',' ',' ',' ',' ',' ',' ',' '] print(len(board)) while True: os.system('cls') for i in range(8): if board[i] == 1: place[i] = "X" # 修复原print语句中重复的place[4],应该是place[3] print(" ", place[0] , " ", place[1], " ", place[2], "\n", " ", place[3], " ", place[4], " ", place[5], "\n", " ", place[6], " ", place[7], " ", place[8]) # 添加延迟避免刷新过快 time.sleep(1)
额外提示
原代码的print语句里有个小问题:第二行的第一个元素写了两次place[4],应该是place[3],已在修改后的代码中修正;另外循环内无延迟会导致屏幕刷新过快,建议添加time.sleep(1)控制刷新频率。
内容的提问来源于stack exchange,提问作者Omar Alomary
相关产品推荐
相关产品推荐

