当列表项退出时发生Python“IndexError:list index out out range”错误

2024-05-14 06:00:43 发布

您现在位置:Python中文网/ 问答频道 /正文

问题:当下面显示的代码从我的代码的另一部分运行时(如下所示),它会产生一个索引错误,并在明显不是的情况下显示“列表索引超出范围”。在

代码(Python版本3.6.3):

   def canwin(XoY):
        LookingForNum = True
        openspaces = []
        dupeboard = board[:]
        a = 0
        for i in range(9):
            if board[a] == " ":
                openspaces = openspaces + [a]
            a = a + 1
        a = 0
        for i in range(len(openspaces)):
                e = openspaces[a]
                dupeboard = [:]
                dupeboard[e] = XoY
                if dupeboard[0] == XoY and dupeboard[1] == XoY and dupeboard[2] == XoY:
                    return True
                elif dupeboard[3] == XoY and dupeboard[4] == XoY and dupeboard[5] == XoY:
                    return True
                elif dupeboard[6] == XoY and dupeboard[7] == XoY and dupeboard[8] == XoY:
                    return True
                elif dupeboard[0] == XoY and dupeboard[3] == XoY and dupeboard[6] == XoY:
                    return True
                elif dupeboard[1] == XoY and dupeboard[4] == XoY and dupeboard[7] == XoY:
                    return True
                elif dupeboard[2] == XoY and dupeboard[5] == XoY and dupeboard[8] == XoY:
                    return True

                elif dupeboard[0] == XoY and dupeboard[4] == XoY and dupeboard[8] == XoY:
                    return True
                elif dupeboard[2] == XoY and dupeboard[4] == XoY and dupeboard[6] == XoY:
                    return True
                else:
                    return False
                a = a + 1

运行起点:

^{pr2}$

我所做的:我尝试过检查python文档中的索引错误,但没有成功。我还检查了其他堆栈溢出问题,但没有运气。在

完整回溯:

Traceback (most recent call last):
  File "C:\Users\user\Desktop\Pu\Testing Tic Tac Toe AI.py", line 316, in <module>
    PlayerPlay()
  File "C:\Users\user\Desktop\Pu\Testing Tic Tac Toe AI.py", line 301, in PlayerPlay
    AIPlay(board)
  File "C:\Users\user\Desktop\Pu\Testing Tic Tac Toe AI.py", line 283, in AIPlay
    PlayerPlay()
  File "C:\Users\user\Desktop\Pu\Testing Tic Tac Toe AI.py", line 301, in PlayerPlay
    AIPlay(board)
  File "C:\Users\user\Desktop\Pu\Testing Tic Tac Toe AI.py", line 283, in AIPlay
    PlayerPlay()
  File "C:\Users\user\Desktop\Pu\Testing Tic Tac Toe AI.py", line 301, in PlayerPlay
    AIPlay(board)
  File "C:\Users\user\Desktop\Pu\Testing Tic Tac Toe AI.py", line 259, in AIPlay
    if canwin("O"):
  File "C:\Users\user\Desktop\Pu\Testing Tic Tac Toe AI.py", line 70, in canwin
    elif dupeboard[2] == XoY and dupeboard[5] == XoY and dupeboard[8] == XoY:
IndexError: list index out of range

Tags: andintruereturntictestingusersfile