TGViewer
PYTHON IN DEPTH🐍 PYTHON IN DEPTH🐍 @python_in_depth · 386 subscribers
Post #32 288
for ... else?

Рассмотрим пример использования ключевого слова else в цикле while:

>>> i = 1
>>> while i < 4:
... print(i)
... i += 1
... else:
... print('Вышли из цикла!')

Если выполнить этот цикл, то мы получим:

1
2
3
Вышли из цикла!

Здесь блок else выполняется только тогда, когда условие выхода из цикла перестает быть верным. Особенность здесь в том, что если вывалиться из цикла через break или через исключение, то блок else выполняться не будет.

Это работает не только с циклами while, но и с циклами for:

>>> for value in values:
... if value == 4:
... print('Нашли!:)')
... break
... else:
... print('Не нашли:(')

И так же можно с try-except блоками. На самом деле исключения в Python это не try-except-finally, а try-except-else-finally, ниже пример:

>>> num = 0
>>> try:
... result = 1 / num
... except ZeroDivisionError:
... print('Деление на ноль!')
... else:
... print('Конечное число.')
... finally:
... print('Вычисления закончены.')
...
Деление на ноль!
Вычисления закончены.

А если задать num = float('Inf'), то в результате деления мы получим 0 и вывод будет:

Конечное число.
Вычисления закончены.

Блок finally выполняется в любом случае. А else можно использовать, если нужно выполниь еще какой-то код в случае отсутствия исключений. Например, это может быть полезно в тестах, когда мы хотим логгировать как в случае падения теста на исключении, так и в случае, если исключений брошено не было.

В общем, есть конструкции while-else и for-else, в которых else отрабатывает в случае <<штатного>> завершения цикла. Еще else можно использовать в try-except блоке, чтобы выполнить какой-то код только в случае успешного выполнения блока try. Во всех случаях использование else позволяет более гибко управлять потоком выполнения 🐍
  • 👍 3
  • 🔥 2
  • ❤‍🔥 1
More from @python_in_depth
  1. Feb 20, 2026«Пузырь лопнул», «айти всё», «рынок умер» — каждый раз читаем это с новым интересом. Но да…
  2. Feb 18, 2026«Какой навык самый важный для разработчика?» Ответ неожиданно простой — умение учиться быс…
  3. Feb 9, 2026Как на самом деле работает отбор резюме в 2026 году Современный найм — это не «человек чит…
  4. Feb 2, 2026Ваш backend слишком сложный. Скорее всего — без причины. У большинства команд сложность ра…
  5. Jan 29, 2026Интеграции с внешними системами: как не превратить backend в зоопарк адаптеров Рано или по…
  6. Jan 29, 2025Еееееее, а че мы над js смеемся
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →