Одна часть моей программы требует, чтобы я проверял, чтобы две «вещи» не перекрывались (занимают одно и то же пространство, то есть координаты). По какой-то причине он не пересекает все хреды. Я уверен, что это простая ошибка программирования, но я сводил программу к простому MWE, и проблема не устранена!Python loop not looping through xrange
import numpy as np
class foo(object):
def __init__(self, yx):
self.yx = yx
def overlap(fooFun):
n = len(fooFun)
for i in xrange(n):
for j in xrange(n):
if i != j: # Don't check itself
print '----------------------'
print 'i,j:', i, j
print 'Comparing:', fooFun[i].yx, fooFun[j].yx
if np.array_equal(fooFun[i].yx, fooFun[j].yx) == True:
print 'Overlap!'
return False
else:
print 'No Overlap!'
return True
# Test functions/class
yx = np.array([[0, 0], [0, 1], [0, 0]])
n = len(yx)
fooGroup = []
for i in xrange(n):
fooGroup.append(foo(yx[i]))
overlap(fooGroup)
что приводит к:
----------------------
i,j: 0 1
Comparing: [0 0] [0 1]
No Overlap!
Для какой-то причине это не через петлю я = 0, 1, 2 и J = 0, 1, 2.
@askewchan: Обычно я программирую таким образом, но я пытался устранить любую неопределенность в коде. Я работал над этой проблемой почти целый день и не хотел пропустить что-то тривиальное (хотя мне все же удалось ...) – Blink