2016-11-09 25 views
0

此代碼是較大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) 

回答

0

在第二次迭代GeneratedX不再元組的列表,取而代之的是一個元組
GeneratedX = (current[0],current[1] + 1))。

這就是爲什麼currentintcurrent[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)] 
. 
. 
. 
. 
+0

謝謝,這幫助了很多! –

相關問題