正如我在标题中所说的,这段代码中的变量点在一些逻辑语句之后变成了 None 值,根本没有触及变量。正如您在代码中看到的,有两种不同的“打印点”语句。我已经进行了实验,第一个实验给出了之前分配的输出“[(1,1,1),(1,1,1)..."。但是第二个给了我输出“无”。有人可以告诉我为什么会发生这种情况以及是否有任何方法可以纠正它?
def detectDots(surface):
dots = [(1,1,1),(1,1,1),(1,1,1),(1,1,1),(1,1,1),(1,1,1),(1,1,1),(1,1,1)]
print dots
for y in range(0,480):
for x in range(0,640):
color = surface.get_at((x,y))
if color.r > 250 and color.g < 70 and color.b < 80:
inDots = True
notInDots = []
for i in range(0,8):
print dots
if math.sqrt((abs(x - dots[i][0])*abs(x - dots[i][0]))+(abs(y - dots[i][1])*abs(y - dots[i][1]))) < 20:
dots[i] = (((dots[i][0]*dots[i][2]+x)/(dots[i][2]+1)),((dots[i][1]*dots[i][2]+y)/(dots[i][2]+1)),(dots[i][2]+1))
else:
notInDots.append(i)
inDots = False
else:
dots = None