Python编写井字棋出现TypeError: list indices must be integers or slices, not list
问题排查结果
你遇到的报错是由istaken函数的代码笔误导致的:
- 你在该函数中写的
col = [1]是直接创建了一个值为[1]的列表,没有从传入的coords坐标元组中读取列索引 - 后续执行
board[row][col]时,用列表作为列表的索引,不符合Python语法要求,因此抛出对应的类型错误
修正方案
只需要修改istaken函数中的列索引取值逻辑即可,修正后的函数代码如下:
def istaken(coords,board): row = coords[0] col = coords[1] # 把原代码的[1]改为coords[1],从坐标元组取第二个元素作为列索引 if board[row][col] != "-": print("Something's already there.") return True else: return False
修改后重新运行代码,输入1-9的数字就不会再触发该类型报错,可以正常判断位置是否被占用。
内容的提问来源于stack exchange,提问作者Ryan Brooks
相关产品推荐
相关产品推荐

