Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 列表索引超出范围_Python_Python 3.x_Indexing - Fatal编程技术网

Python 列表索引超出范围

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

这个错误来了。我不知道是什么。我是一个初学者程序员

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.__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("-------")
致:

你也应该

  • 将电路板更改为正方形,使行=列
  • 删除行和列分别为6和7的默认参数
  • 6行7列的硬代码
  • 有很多方法可以修复在整个程序中没有同步行和列的错误

            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])):