如果我运行一次,它将工作并返回成功。然后,当循环再次运行时,它将只检查列表的最后一个元素。如何使循环运行并检查条件语句中列表的每个元素
def draw():
mesasX, mesasY = [], []
x, y = random.randint(6,94), random.randint(6,94)
mesasX.append(x)
mesasY.append(y)
for mesax, mesay in zip(mesasX, mesasY):
x, y = random.randint(6,94), random.randint(6,94)
if (x - 8 < mesax < x + 8 and y + 8 > mesay > y - 8):
print("Failed")
else:
mesasX.append(x)
mesasY.append(y)
print("Success!")
break
你想把每一个新项目和每一个旧项目进行比较。这样做的方法是移动循环。并使用
all
:这读起来像这样:如果它合适,就生成一个item测试;如果它确实将它添加到列表并停止,就不再尝试
如果将列表替换为以一个点为中心的16乘16个单位框的空间索引,则可以更快地执行此操作。这将允许一个人把近距离测试变成一个箱点测试,这可能是接近恒定的时间
然后,如果一个人能从这些盒子的并集中均匀地取样,这将消除测试,因为每个生成的项目都将通过测试
相关问题 更多 >
编程相关推荐