我有一个列表,其中包含5个值的列表,如果列表中的值为== 5,则在尝试运行while循环时,我的索引超出范围错误。 这几乎是我的所有代码
from solverFuncs import *
puzzle = [[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]
pos = 0
backtrack = 0
checks = 0
while pos <25:
puzzle[pos/5][pos%5] += 1
checks+=1
if check_valid(puzzle,cages):
pos+=1
elif puzzle[pos/5][pos%5]==5:
while puzzle[pos/5][pos%5]==5:
puzzle[pos/5][pos%5]=0
pos=pos-1
backtrack+=1
错误即时显示:
File "solver.py", line 16, in <module>
while puzzle[pos/5][pos%5]==5:
IndexError: list index out of range
答案 0 :(得分:0)
在python中,list的索引以[0]开头。因此,您的列表中包含min index = 0
和max index = 4
的5个元素。希望它会有所帮助
答案 1 :(得分:0)
无论check_valid
做什么,我认为你应该在第16行的while块中添加一个支票
while pos>=0 and puzzle[pos/5][pos%5]==5:
并在返回pos=0
while pos<25