В python есть неочевидные конструкции, например, else у цикла for. Часть с else выполнится, если цикл завершился сам, без break.
Хорошее применение — если есть два вложенных цикла (внимание! вычислительная сложность O(n^2), старайтесь избегать такого), и при завершении внутреннего надо завершить и внешний. Например, с помощью pandas разбираем эксельку с построчной обработкой, и в случае ошибок надо прекращать сразу оба цикла.
Если внутренний цикл прошёл целиком, то выполнится continue на строке 8, и внешний цикл продолжится. Если внутренний цикл на строке 5 завершится по break, то else не выполнится и мы попадём на строку 10 в break внешнего цикла.
Без for-else это решается флагом, который проверяется на внешнем цикле — то есть куда менее изящно.
Пример взят тут
#python #codereview
Post #99
590

- 👍 14
- 🔥 3