List 在课堂上使用列表

List 在课堂上使用列表,list,python-3.x,class,tkinter-canvas,List,Python 3.x,Class,Tkinter Canvas,我正在尝试使用画布在Python3.5中制作一个游戏。我有一个三角形坐标的列表。我正在使用一个类来创建一个对象,这个对象应该是播放器。当我尝试实现一个移动系统时,我想到了使用一个列表,这样我可以使用for循环快速更改坐标,但是当我运行代码并按下按钮时,它给出了以下信息: TypeError:列表索引必须是整数或片,而不是浮点 下面是代码(抱歉,如果它是原始的,这是我第一次同时使用canvas和class,我在三个小时内输入了这个) 对于我在self.coords: 这将依次为self.coord

我正在尝试使用画布在Python3.5中制作一个游戏。我有一个三角形坐标的列表。我正在使用一个类来创建一个对象,这个对象应该是播放器。当我尝试实现一个移动系统时,我想到了使用一个列表,这样我可以使用for循环快速更改坐标,但是当我运行代码并按下按钮时,它给出了以下信息:

TypeError:列表索引必须是整数或片,而不是浮点

下面是代码(抱歉,如果它是原始的,这是我第一次同时使用canvas和class,我在三个小时内输入了这个)


对于我在self.coords:

这将依次为
self.coords
中的每个项目设置
i
,而不是项目的索引

这意味着当您编写
self.coords[i]=self.coords[i]+thrust
时,可能不是您想要的。(因为
i
不是索引,而是
self.coords
中的项目)

您必须使用
range()
函数为
i
提供所需的值

for i in range(len(self.coords)):
    self.coords[i]=self.coords[i]+thrust

你可能认为这会管用
但是它不起作用,因为
i
self.coords
中该位置的值。它不是对它的引用。更改它不会更改self.coords。它是临时的。

这意味着
i
是一个浮动。不能使用浮点值为列表编制索引。得到列表中的2.5元素意味着什么?我明白你的意思,但这不是我想做的,我试图通过coords[i]+推力来改变coords[i]的值,这对我来说没有任何意义,因为我没有改变i的值,我在改变coords[i]的值,但它仍然给我错误。你能给我解释一下吗?不管怎样,我明白了,很抱歉浪费你的时间现在是凌晨1点,我时差太大了,祝你有个安全的一天。因为你正在迭代
self.coords
,它包含浮点数,
i
将是浮点数。您的意思是对范围内的i(len(self.coords))执行
,还是对枚举中的i(self.coords))执行
?你想让
i
成为
coords
的值,还是
coords
的索引?是的,我说我知道了,很抱歉我浪费了你的时间
for i in range(len(self.coords)):
    self.coords[i]=self.coords[i]+thrust
for i in self.coords:
    i = i + thrust