Как работает функция else в Python?
В условных конструкция и циклах else является необязательным оператором.
В условных конструкция else срабатывает, в случае, если ни одно другое условие не подошло.
Пример 1
answer = 'yes' if answer = 'yes': print('Start game') else: print('Game over') # Output: Game over
В циклах else сработает после всех итераций.
Пример 2
sum_ = 0 for i in range(100): sum_ += i else: print('Done')
Пример 3
game_on = True while game_on: print('Do it game') else: print('Game over')
Циклы в Python: как работают и какие бывают
Они есть практически в каждом языке программирования, но в Python с ними работать приятнее всего. Как, впрочем, и со всем остальным.


Иллюстрация: Катя Павловская для Skillbox Media

Иван Стуков
Журналист, изучает Python. Любит разбираться в мелочах, общаться с людьми и понимать их.
Код в Python обычно выполняется последовательно: первая строка, потом вторая, третья и так далее. Но некоторые конструкции позволяют нарушать этот порядок, чтобы совершать более сложные операции.
Например, циклы выполняют один и тот же блок кода несколько раз. В Python есть два основных вида циклов: while и for. О них и поговорим.
- Функция range()
- Однострочный цикл: генератор списков
- Прерывание цикла: ключевое слово break
- Пропуск части цикла: ключевое слово continue
- Последнее действие в цикле: ключевое слово else
- Бесконечный цикл
- Как сделать аналог do while в Python
- Вложенные циклы в Python
Как работают циклы
Любой цикл состоит из двух обязательных элементов:
- условие — начальный параметр; цикл запустится только при его выполнении и закончится, как только условие перестанет выполняться;
- тело — сама программа, которая выполняется внутри цикла.
Схематически его можно представить так:

В синтаксисе Python в конце строки с условием ставится двоеточие, а всё тело выделяется отступом (табуляцией или четырьмя пробелами).

В Java и C++ такое достигается с помощью конструкции do while, но в Python её нет. Зато можно сделать аналог. Для этого нужно использовать бесконечный цикл, а внутри его тела прописать условие завершения.

Можно вкладывать друг в друга сколько угодно циклов. При этом для каждого нового уровня вложенности нужно увеличивать отступ. Выглядит это так:
while condition: pass while inner_condition: pass pass
Напишем программу, которая будет выводить номер итерации внешнего и внутреннего цикла.
for i in range(3): print(f'Итерация внешнего цикла: ') for j in range(2): print(f'Итерация внутреннего цикла: ') >>> Итерация внешнего цикла: 0 >>> Итерация внутреннего цикла: 0 >>> Итерация внутреннего цикла: 1 >>> Итерация внешнего цикла: 1 >>> Итерация внутреннего цикла: 0 >>> Итерация внутреннего цикла: 1 >>> Итерация внешнего цикла: 2 >>> Итерация внутреннего цикла: 0 >>> Итерация внутреннего цикла: 1
Резюмируем
- Циклы — один из основных инструментов любого Python-разработчика. С их помощью всего за пару строчек кода можно совершить сразу множество повторяющихся действий.
- Циклы состоят из условия и тела. Код в теле выполняется только до тех пор, пока соблюдено условие.
- В Python есть два вида циклов: while и for. В while условие задаётся явным образом. В for перебирается каждый элемент коллекции.
- К обоим видам можно применять разные операторы: break для прерывания, continue для пропуска части тела, else для совершения последнего действия перед выходом из цикла.
- Циклы можно делать бесконечными (тогда программа никогда не завершится или завершится только при выполнении определённого условия) и вкладывать друг в друга.
Больше интересного про код в нашем телеграм-канале. Подписывайтесь!
Читайте также:
- Типы данных в Python для начинающих: какие бывают и как с ними работать
- Тест: что ты знаешь про Никлауса Вирта — разработчика Pascal
- Чат-боты в Telegram на Python. Часть 1. Выбираем библиотеку и пишем первого бота
То есть объект, который может возвращать элементы по одному.
while else
Инструкция, позволяющая повторять цикл пока выполняется определённое условие.
do = True
while do:
print('делаем')
do = False
print('делаем')
else:
print('закончили')
# делаем
# делаем
# закончили
На каждом витке цикла условие, заданное при помощи выражения идущего после while , проверяется на истинность.
- Если выражение истинно, выполняется тело цикла;
- Если выражение ложно, то тело цикла [больше] не выполняется, но выполяется блок else , если он задан.
do = True
while do:
print('делаем')
break
do = False
print('делаем')
else:
print('закончили')
# делаем
continue
Если в теле цикла встречается инструкция continue , то остаток тела цикла пропускается и производится переход к очередной проверке истинности.
do = True
while do:
print('делаем')
do = False
continue
print('делаем')
else:
print('закончили')
# делаем
# закончили
На заметку
Благодаря существованию цикла for in, прибегать к использованию while приходится относительно редко.
Синонимы поиска: while else, циклы, while_loop, цикл while
for/else, while/else#
В циклах for и while опционально может использоваться блок else.
for/else#
- блок else выполняется в том случае, если цикл завершил итерацию списка
- но else не выполняется, если в цикле был выполнен break
Пример цикла for с else (блок else выполняется после завершения цикла for):
In [1]: for num in range(5): . : print(num) . : else: . : print("Числа закончились") . : 0 1 2 3 4 Числа закончились
Пример цикла for с else и break в цикле (из-за break блок else не выполняется):
In [2]: for num in range(5): . : if num == 3: . : break . : else: . : print(num) . : else: . : print("Числа закончились") . : 0 1 2
Пример цикла for с else и continue в цикле (continue не влияет на блок else):
In [3]: for num in range(5): . : if num == 3: . : continue . : else: . : print(num) . : else: . : print("Числа закончились") . : 0 1 2 4 Числа закончились
while/else#
- блок else выполняется в том случае, если условие в while ложно
- else не выполняется, если в цикле был выполнен break
Пример цикла while с else (блок else выполняется после завершения цикла while):
In [4]: i = 0 In [5]: while i 5: . : print(i) . : i += 1 . : else: . : print("Конец") . : 0 1 2 3 4 Конец
Пример цикла while с else и break в цикле (из-за break блок else не выполняется):
In [6]: i = 0 In [7]: while i 5: . : if i == 3: . : break . : else: . : print(i) . : i += 1 . : else: . : print("Конец") . : 0 1 2