Задать вопрос
@Yevgeni

Как принудительно заблокировать исполнение цикла while и всех циклов что внутри него?

while turned_on:
sub_loop

Как при изменении переменной turned_on на True заблокировать исполнение цикла while и всех ранее запущенных циклов внутри него не дожидаясь завершения исполнения кода.
  • Вопрос задан
  • 88 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
@vasilek-nik
Например с помощью исключений:
class BreakIt(Exception): pass

try:
    for x in range(10):
        for y in range(10):
            print x*y
            if x*y > 50:
                raise BreakIt
except BreakIt:
    pass

Здесь имеется два вложенных for'a, хотя тип цикла не принципиален. Когда нужно выйти из всех выбрасывается исключение, которое ловится после цикла.
Только не говорите, что это не ваш случай и вам нужно выходить по изменению значения переменной. Этот пример легко адаптируется под ваш случай
Ответ написан
Комментировать
@lega
return если в пределах одной ф-ии, иначе raise
Ответ написан
Комментировать
Tanner
@Tanner
Огромный человекоподобный боевой робот
Поместите внешний while в функцию; делайте return для останова всех циклов.

Управление выполнением через исключение тоже допустимо в Python, но return лучше читается.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы