Перейти к содержимому

Как работает else в циклах питон

  • автор:

Как работает функция 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 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *