Программа не подчиняется коду

фрагмент кода:

 for h1 in range(0, 34):
    for h2 in range(0, 6):
        if z[h1][h2] = 7:
            k[7] =h1
            print(k[7])
            h1 = 34
            h2 = 6

Я ищу первую 7-ку в файле. По факту z[4][3] = 7.Разве цикл не должен прекратиться при h1=4, h2=3 ? Я же указываю, что как только находится 7-ка, условия цикла исчерпываются. Но нет, программа не реагирует на z[4][3] = 7, а выдает ответ k[7]=31. Действительно, z[31][6]=7, но почему игнорится z[4][3] = 7 ? Перепробовал все варианты , чтобы она останавливала поиск , h1 = 33, h2 = 5 h1 = 33 h2 = 6 h1 = 32 h2 = 5 - все-равно первую ( и вторую тоже) 7-ку она игнорит, выдает лишь последнюю в [0,34]. Что бы это означало?алгоритм


Ответы (2 шт):

Автор решения: Анатолий Бабенко

Да, с break работает.

Вот рабочая программа:

for h1 in range(0, 34):
    for h2 in range(0, 6):
        if z[h1][h2] = 7:
            k[7] =h1
            print(k[7])
            break
    if z[h1][h2] = 7:
        break

Моя ошибка была в том, что я использовал break один раз, а надо было дважды.

→ Ссылка
Автор решения: eri
for h1 in range(0, 34):
    for h2 in range(0, 6):
        if z[h1][h2] == 7:
            k[7] =h1
            break
    else: 
        continue
    break

print(k[7])
        

Но лучше обернуть в функцию и прерывать через return - нагляднее и легче запомнить

→ Ссылка