Python井字棋代码运行报'int' object is not subscriptable错误如何解决
错误原因
random.randint()的返回值是整数类型的索引,你直接将该整数赋值给random_coord后,尝试对整数做[0]/[1]的下标取值操作,不符合Python语法,直接触发'int' object is not subscriptable报错。- 额外补充:就算你拿到了正确的坐标列表,Python二维列表的赋值语法也不是
board[x,y],该写法等价于board[(x,y)],是尝试用元组当下标取列表值,也会触发报错。
修复方案
两步修改即可解决问题:
- 调整随机坐标的取值逻辑,先取索引再从可用坐标列表
coord里拿对应坐标 - 修改二维列表的赋值语法为正确的
board[x][y]格式
修改后的关键代码段如下:
# 替换原 random_coord = random.randint(0, len(coord) - 1) 行 random_index = random.randint(0, len(coord) - 1) random_coord = coord[random_index] # 替换原 board[random_coord[0],random_coord[1]] = 'O' 行 board[random_coord[0]][random_coord[1]] = 'O'
内容的提问来源于stack exchange,提问作者darryl nguyen
相关产品推荐
相关产品推荐

