Image

Imagebialix wrote in Imageru_python

выход из глубины вложенных циклов

Вопрос, возможно банальный, но я еще не дорос до уровня мега-профи, потому он меня сегодня озаботил. Просьба сильно не подкалывать ;-).

Если имеем несколько вложенных циклов (как миниммум 2) и есть нужда принудительно выйти из самого внутреннего, то как при этом лучше поступать? Поскольку break работает только для одного цикла, а goto -- это страшнейшее табу (от него волосы на руках растут), то что же остается? Использовать специальные флаги -- не красиво как-то. Не по-питонвоски это, что-ли...

Вспомнив, что генерация исключения -- есть скрытое и косвенное goto, сделал через генерацию своего собственного исключения (raise LoopEnd), а циклы заключил в конструкцию:
try:
    ...
except LoopEnd:
    pass


А теперь вот и думаю, а какие еще существуют способы, хорошие и красивые?

Кстати, помнится мне 1 апреля прошлого года был анонсирован рецепт goto для питона. Ну или что-то в таком духе. :-)