TypeError:'int'对象不是可下载的,在循环中添加到元组中
问题描述:
此代码是较大pygame程序的一部分,用于向下降小行星的Y值加1。它首先用y值= 2打印列表中的项目,但在第二个循环中,我收到错误消息。TypeError:'int'对象不是可下载的,在循环中添加到元组中
GeneratedX = []
x = (200,1)
y = (168,1)
GeneratedX.append(x)
GeneratedX.append(y)
i = True
while i == True:
for current in GeneratedX:
GeneratedX = (current[0],current[1] + 1)
print(GeneratedX)
答
在第二次迭代GeneratedX
不再元组的列表,取而代之的是一个元组
(GeneratedX = (current[0],current[1] + 1)
)。
这就是为什么current
是int
和current[0]
会产生TypeError
。
一个可能的解决方案是在下面的方式使用enumerate
:
for i, current in enumerate(GeneratedX):
GeneratedX[i] = (current[0], current[1] + 1)
当你的代码输出的其余部分中使用:
[(200, 2), (168, 1)]
[(200, 2), (168, 2)]
[(200, 3), (168, 2)]
[(200, 3), (168, 3)]
[(200, 4), (168, 3)]
[(200, 4), (168, 4)]
[(200, 5), (168, 4)]
[(200, 5), (168, 5)]
[(200, 6), (168, 5)]
.
.
.
.
谢谢,这帮助了很多! –