def increaseEach(arr,n1,n2):
for i in range(0,len(arr)):
arr[i][0] += n1
arr[i][1] += n2
return arr
while counter0 < count0:
for y in range(0,5):
if x % 2 == 0:
countEven += 1
for j in crnew:
crnew = increaseEach(j,2,-2)
sc = (crnew[y][0],crnew[y][1])
ec = (crnew[y+4][0],crnew[y+4][1])
pg.draw.line(screen,red,sc,ec,1)
if x % 2 == 1:
countOdd+= 1
for j in crnew2:
crnew2 = increaseEach(j,2,-2)
sc2 = (crnew2[y][0],crnew[y][1])
ec2 = (crnew2[y+4][0],crnew[y+4][1])
pg.draw.line(screen,red,sc2,ec2,1)
crnew和crnew2都是矩阵,这两个循环中的j是crnew和crnew2中的单个数组。我得到以下错误报告:
line 144, in <module>
crnew = increaseEach(j,2,-2)
line 34, in increaseEach
arr[i][0] += n1
TypeError: 'int' object is not subscriptable
我很困惑,这个bug的源头是在第34行的increaseEach函数中定义的,还是后来在代码中尝试使用的。 谢谢。你知道吗
您正在从矩阵中传递行,并希望该行中的元素更新了。那个是正确的。当结果行(列表)来自您在原始矩阵中保存的函数时。更新了矩阵。到单行。ir从
n x m
矩阵大小改为1x m
大小。在下一次迭代中,当要执行函数的元素而不是整行(list)时,一个int变量消失了,这会导致int不可描述的错误。你知道吗您需要将
crnew2 = increaseEach(j,2,-2)
更新为j = increaseEach(j,2,-2)
,将crnew = increaseEach(j,2,-2)
更新为j= increaseEach(j,2,-2)
相关问题 更多 >
编程相关推荐