&引用;列表索引超出范围“;Python中的错误

&引用;列表索引超出范围“;Python中的错误,python,pygame,Python,Pygame,我又在做一个简单的跳棋。而且,为了跟踪所有要跳棋的位置,我创建了一个列表来添加所有位置 Locations = [(10, 10), (70, 10), (130, 10), (190, 20), (250, 10), (310, 10), \ (370, 10), (430, 10), (10, 70), (130, 70), (190, 70), (250, 70), \ (310, 70), (370, 70), (430, 70), (10, 130)

我又在做一个简单的跳棋。而且,为了跟踪所有要跳棋的位置,我创建了一个列表来添加所有位置

Locations = [(10, 10), (70, 10), (130, 10), (190, 20), (250, 10), (310, 10), \
         (370, 10), (430, 10), (10, 70), (130, 70), (190, 70), (250, 70), \
         (310, 70), (370, 70), (430, 70), (10, 130), (70, 130), (130, 130), \
         (190, 130), (250, 130), (310, 130), (370, 130), (430, 130), \
         (10, 190), (70, 190), (130, 190), (190, 190), (250, 190), (310, 190), \
         (370, 190), (430, 190)]
但是,当我尝试执行程序时,我总是得到: Ld8=位置[31]-列表索引超出范围

所以,我想也许一个列表只能包含一定数量的数字。因此,我创建了第二个位置列表并添加了行E-H,以便拆分列表。但是,我仍然收到索引超出范围的相同错误。
(Ld8是存储D行第8列位置的变量)

Emm。。。列表的元素从0开始编号,而不是从1开始编号。我已经计算了你的列表,我看到了从0到30的元素


有时我甚至忘记了从1开始计数是可能的…

你有一个非常基本的理解问题:

>>> Locations = [(10, 10), (70, 10), (130, 10), (190, 20), (250, 10), (310, 10), (370, 10), (430, 10), (10, 70), (130, 70), (190, 70), (250, 70), (310, 70), (370, 70), (430, 70), (10, 130), (70, 130), (130, 130), (190, 130), (250, 130), (310, 130), (370, 130), (430, 130), (10, 190), (70, 190), (130, 190), (190, 190), (250, 190), (310, 190), (370, 190), (430, 190)]
>>> len(Locations)
31
>>> Locations[0] # first element
(10, 10)
>>> Locations[30] # last element
(430, 190)
>>> Locations[31] # doesn't exist!
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>位置=[(10,10)、(70,10)、(130,10)、(190,20)、(250,10)、(310,10)、(370,10)、(430,10)、(10,70)、(130,70)、(190,70)、(250,70)、(310,70)、(370,70)、(430,70)、(10,130)、(70,130)、(130,130)、(190,130)、(250,130)、(310,130)、(370,130)、(430,130)、(10,190)、(70,190)、(190,190)、(250,190)、(250,190)、(310,190)],(370, 190), (430, 190)]
>>>len(地点)
31
>>>位置[0]#第一个元素
(10, 10)
>>>位置[30]#最后一个元素
(430, 190)
>>>位置[31]#不存在!
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
索引器:列表索引超出范围

位置中的元素从0到30,因为总共有31个元素。

列表索引从0开始。因此您的列表有31个项目,您可以使用索引0-30访问它们。位置[31]指的是不存在的第32个项目。

该列表中最大的索引是30,而不是31。列表中的索引(在大多数语言中)从零开始。因此
(10,10)
位于索引0,而
(430190)
位于索引30

如果您试图用python在列表末尾建立索引,我建议您按
位置[-1]
建立索引


如果您试图使用
len
,则需要减去1:
位置[len(位置)-1]
位置[31]尝试访问列表中的第32项(不存在)大多数编程语言的数组索引从
0
开始,而不是
1

检查位置变量的长度是否大于31:print len(位置)您可能会发现,使用固定长度的64项列表(表示棋盘格的方块)更容易,其中的值指示方块上显示的内容。