Интуитивно понятное объяснение забытых в Python циклов for...else
и while...else
Недавно я прочитал Забытый необязательный `else` в циклах Python. Судя по всему, Python позволяет добавлять необязательное else
в конец for/while
циклов. Это предложение else
выполняется, когда цикл завершается нормально (т. е. без прерываний или возвратов).
i = 1 while i < 10: print(i) i += 1 else: print("Loop finished normally") > output: 1 2 3 4 5 6 7 8 9 Loop finished normally
Первоначально это казалось неинтуитивным поведением, поскольку я ожидал, что else
активируется, когда цикл сбой, т. е. в середине есть разрыв или возврат. Просматривая комментарии, я обнаружил, что я не одинок: все утверждают, что это «нелогично» или «неправильный выбор ключевого слова».
Вот лучший способ подумать об этом.
i = 1 if i < 10: print(i) i += 1 go back to: if statement on Line 3 else: print("Loop finished normally")
Таким образом, становится ясно, что если условие i < 10
не выполняется, мы переходим к предложению else (точно так же, как обычное выражение if). Кроме того, если мы достигнем точки, где i < 10
имеет значение False, мы знаем, что находимся в конце цикла, и во время выполнения цикла не возникало никаких ошибок/возвратов/разрывов!
Надеюсь, это поможет! Следуйте за мной, чтобы получать дополнительные полезные советы по Python, и оставляйте любые вопросы в комментариях ниже.
Вы пробовали удерживать кнопку хлопка ❤️?
Фото Тиенко Дима на Unsplash