Python - 列表索引超出范围将对象循环到新位置

时间:2012-12-03 23:21:58

标签: python indexing

我已经多次搜索过了,我无法弄清楚出了什么问题。相关的代码行是:

WallList=[]
def createWallList():
    i=0
    while i<=numberWalls:
        newWall=box(pos=(0,(arenaSize-(i*2))-1,0), height=.1, width=1, length=(randomValue(0,20)), color=color.green)
        WallList.append(newWall)
        i=i+1

if WallList[i].pos.y>arenaSize:
    WallList[i].pos.y=-arenaSize

我在控制台中收到错误说:

Traceback (most recent call last):
    File "/Users/samwhaverly/Documents/FallDownGameWIP.py", line 76
    if WallList[i].pos.y>arenaSize:
IndexError: list index out of range

我很抱歉这里有这么多,但我无法弄清楚出了什么问题。如果你们中的任何人都能提供见解,那将非常有帮助。如有必要,我可以提供其他详细信息。

1 个答案:

答案 0 :(得分:1)

您收到错误是因为缩进错误。这是正在发生的事情:

i = 0
Is i <= numberWalls? Yes.
Make a new wall.
Increment i to 1.
Is i <= numberWalls? Yes.
Make a new wall.
Increment i to 2.
...
Increment i to numberWalls + 1.
Is i <= numberWalls? No.
if WallList[i] <- ERROR: there is no wallList[i]