Вложенный цикл не выполняется после первого внутреннего цикла if

Новое в кодировании и в Python. У меня есть этот код, который по какой-то причине будет проходить только через мой первый оператор if. Я смотрел на это часами и, честно говоря, не могу сказать, почему?

for i in range(1, trex.shape[0]-1): 
    for j in range(1,trex.shape[1]-1): 

        if shape[i,j] == 0:    # for 0 degree angles # ONLY GOES THROUGH THIS
            if trex[i,j] < trex[i, j+1] and trex[i,j] < trex[i,j-1]: 
                trex[i,j] = 0

        elif shape[i,j] == 45:    # for 45 degree angles # Never comes down here
            if trex[i,j] < trex[i-1, j+1] and trex[i,j] < trex[i+1,j-1]:
                trex[i,j] = 0

        else    # for 90 degree angles         # Or here
            if trex[i,j] < trex[i-1, j] and trex[i,j] < trex[i+1,j]:
                trex[i,j] = 0

В общем, я хочу, чтобы он проходил через 2d массив. У меня есть еще один двумерный массив с именем shape (такой же формы, как у trex), который имеет углы 0, 45, 90. Сначала я смотрю на угол в точке [i,j], а затем в зависимости от того, под каким углом он находится, я хочу, чтобы он смотрел по значению trex у соседей по точке. Если соседние точки ОБА ниже средней точки, то я ничего не делаю. В противном случае я устанавливаю среднюю точку ([i,j]) равной 0. Но когда я запускаю свой код, он устанавливает только те, которые имеют угол от 0 до 0. Так что это никогда не сводится к моему выражению elif или else. Я понятия не имею, почему: "(Надеюсь, это имеет смысл, и любая помощь очень ценится!

0 ответов

Другие вопросы по тегам