Python 列表索引超出范围
这个错误来了。我不知道是什么。我是一个初学者程序员 ConnectFourBoard.py”,第58行,在show_board_dynamic中 打印(self.\u board[i][j],end=”“),索引器:列表索引超出范围 我的代码:Python 列表索引超出范围,python,python-3.x,indexing,Python,Python 3.x,Indexing,这个错误来了。我不知道是什么。我是一个初学者程序员 ConnectFourBoard.py”,第58行,在show_board_dynamic中 打印(self.\u board[i][j],end=”“),索引器:列表索引超出范围 我的代码: class ConnectFourBoard: def __init__(self, cols = 7, rows = 6, requiredToWin = 4): global __board self.__sp
class ConnectFourBoard:
def __init__(self, cols = 7, rows = 6, requiredToWin = 4):
global __board
self.__space = ''
self.__board = []
self.cols = cols
self.rows = rows
self.Win = requiredToWin
self.__board = [[''] * rows for i in range(cols)]
for i in range(cols):
row = ['']*cols
self.__board.append(row)
def MakeMove(self, row, col, element):
global __board
self.__board[row][col] = element
def CheckForWin(self):
return winner
def CheckHz():
for x in range (6):
for y in range (7):
row += board[x][y]
print("%s" %row)
row = ""
if "XXXX" in row:
print("Winner is X")
break;
def CheckVt():
for y in range(7):
for x in range(6):
column += board[y][x]
print("%s" %column)
column = ""
if "XXXX" in column:
print ("Winner is X")
break;
def FullBoard(self):
return True
def FreeSpace(self, row, col):
return True
def show_board_dynamic(self):
print()
print("-------")
for i in range(len(self.__board)):
for j in range(len(self.__board)):
print("|", end = "")
print(self.__board[i][j], end = ""),
print("|")
print("-------")
print()
行和列的数字不同,但对这两个行和列迭代
len(self.\uu board)
更改:
for i in range(len(self.__board)):
for j in range(len(self.__board)):
print("|", end = "")
print(self.__board[i][j], end = ""),
print("|")
print("-------")
致:
你也应该
for i in range(len(self.__board)):
for j in range(len(self.__board[0])):
这一行应该固定到这一行。检查并尝试删除范围内i(cols)的这一
:行=['']*cols self.\uuu板。从\uu初始化()中追加(行)
,即它的最后几行。谢谢!!!但当我只需要6行时,我的行太多了,你知道为什么吗?这能解决运行它时打印太多行的问题吗?def show_board_dynamic(self):print()print(-------)对于自身中的列。uu板:对于列中的val:print(“|”,end=“”)print(val,end=“”),print(“|”)print(“----”)我已将该行更改为这一行,因此我不确定下一步该怎么办请查看我的答案,以了解三种可能的解决方案。它是否仍会引发错误?您上面发布的注释将不起作用。它将遍历元素。相反,您希望遍历索引并通过线路板打印索引中的值。只需替换第二个f或循环此“对于范围内的j(len(self.\uu board[0]):”
for i in range(len(self.__board)):
for j in range(len(self.__board[0])):