Какие на сегодня известны способы выйти из нескольких вложеных циклов в Python?
Знаю, что вопрос довольно частый и есть инфа в инете. Но может быть вам известны какие-то новинки или проверенные на себе методы, как goto: в других яп?
if __name__ == '__main__':
for i in range(3):
for j in range(3):
for k in range(3):
print(i, j, k)
if i == 1 and j == 1 and k == 2:
print('exit k')
break
else:
continue
break
else:
continue
break
SoreMix, это тоже вариант, но это значит на вышестоящих уровнях цикла их надо будет везде проверять. В целом если из комплекта циклов нужно выходить разом, это сигнал к тому, что это самостоятельная часть алгоритма, которую можно выделить в отдельную функцию и обойтись обычным return.
shurshur, это понятно, но бывает что и после цикла нужный функционал и для ретюрна нужно будет цикл выносить куда нибудь в отдельную функцию. Тут все от задачи зависит, как и было сказано. А мой комментарий просто к вопросу
ак тогда в цикле выше уровнем понять, что надо выйти, а не продолжить?
SoreMix, я понимаю и даже сам иногда такое практикую. Но в ответе, который мы обсуждаем, предлагалось просто break, что как бы совсем не ответ и скорее всего было написано без нормального вникания в вопрос.
Не могу сказать как это сделать согласно Python way, но в общем случае если вдруг возникает ситуация, когда нужно "вынырнуть" откуда-то из глубины кода, я бы выбросил кастомное исключение и обернул бы нужный фрагмент в try... catch.