Цикл while в Python

Циклы в программировании нужны, чтобы повторять один и тот же блок кода определенное количество раз. В этой статье вы научитесь создавать и использовать цикл while в Python.

Цикл while

Цикл while в Python используется для повторения блока кода, пока выражение (условие) истинно, т.е. равно True.

Обычно этот цикл используют, когда заранее неизвестно, сколько раз нужно повторить блок кода.

Синтаксис цикла

while выражение:
    Тело while

Сначала цикл while проверяет выражение на истинность. Тело цикла начнет выполняться только в том случае, если выражение = True. После первой итерации цикла выражение снова проверяется на истинность. Этот процесс будет продолжаться до тех пор, пока выражение не станет равно False.

В Python тело цикла while обозначается отступами. Тело цикла начинается с отступа, а заканчивается первой строкой без отступа. 

Помните, что Python интерпретирует ненулевые значения как True. None и 0 интерпретируются как False.

Блок-схема цикла

Пример использования цикла

# Программа складывает натуральные
# числа от 1 до n
# sum = 1+2+3+...+n

# Чтобы предложить пользователю ввести число n,
# напишите: n = int(input("Введите n: "))

n = 10

# объявляем переменные: сумма и счетчик
sum = 0
i = 1

while i <= n:
    sum = sum + i
    i = i+1  # обновляем счетчик

# выводим сумму на экран
print("Сумма чисел от 1 до n:", sum)

Вывод:

Сумма чисел от 1 до n: 55

В приведенной выше программе выражение будет равно True до тех пор, пока счетчик i меньше или равен n. В нашем примере n = 10.

Главное не забывать увеличивать значение счетчика в теле цикла while, иначе получится бесконечный цикл. выражение всегда будет истинным, поскольку i не будет увеличиваться, следовательно, цикл никогда не остановится.

Цикл while с блоком else

Так же, как и с циклами for, с циклами while можно использовать дополнительный блок else

Блок else начнет выполняться, когда условие цикла while станет равно False.

Цикл while можно принудительно завершить с помощью инструкции break. В таких случаях блок else игнорируется. Иначе говоря, блок else выполняется только в том случае, если внутри тела while не использовался оператор break, а условие цикла while ложно. 

Вот пример, который иллюстрирует это.

'''Программа демонстрирует
использование конструкции else
в комбинации с циклом while'''

counter = 0

while counter < 3:
    print("Внутри цикла while")
    counter = counter + 1
else:
    print("Внутри блока else")

Вывод: 

Внутри цикла while
Внутри цикла while
Внутри цикла while
Внутри блока else

Мы использовали переменную-счетчик counter, чтобы напечатать сообщение «Внутри цикла while» ровно 3 раза.

После третьей итерации, т. е. когда counter = 3, условие цикла while counter < 3 становится ложным, т. е. False. Тогда-то и выполняется блок else.

Проверьте себя
1. Когда обычно используют цикл while вместо for?
AКогда заранее неизвестно, сколько раз нужно повторить блок кода
BКогда нужно перебрать элементы списка по порядку
CКогда количество итераций всегда известно заранее
DКогда цикл должен выполниться ровно один раз
2. Что произойдёт, если забыть увеличить счётчик в теле цикла while?
AПолучится бесконечный цикл — условие всегда будет истинным, и цикл никогда не остановится
BPython выдаст ошибку IndentationError
CЦикл выполнится один раз и завершится
DЦикл автоматически остановится после 100 итераций
3. При каком условии выполнится блок else после цикла while?
AКогда цикл завершился оператором break
BПосле каждой итерации цикла
CКогда условие цикла стало False и внутри цикла не использовался break
DЕсли тело цикла ни разу не выполнилось

Закрепите практикой

Задачи с автоматической проверкой — решайте прямо здесь, не уходя из учебника.

py
Курс по теме
Пройдите курс «Python с нуля» — по шагам, с проверкой
8 уроков · ~14 ч · теория, упражнения и экзамен с бейджем
Открыть курс →