Сообщить об ошибке.

while, цикл по условию в Python.

Конструкция while/else, цикл по условию.

Конструкция while выполняет код внутри цикла до тех пор, пока условие остаётся истинным. Как только условия перестаёт быть истинным, цикл завершается. В Python, как и в C, любое ненулевое целочисленное значение имеет значение истины True, ноль это лож False. Условие также может быть строкой или списком, фактически любой последовательностью. Все, что имеет ненулевую длину, имеет значение True, пустые последовательности - False. Стандартные операторы сравнения пишутся так же, как в C: < (меньше), > (больше), == (равно), <= (меньше или равно), >= (больше или равно) и != (не равно).

count = 3
while count < 7:
    print(count, " < 7")
    count = count + 1
else:
    print (count, " = 7")

# Код выведет:
# 3 < 7
# 4 < 7
# 5 < 7
# 6 < 7
# 7 = 7

Цикл while еще называют циклом с предусловием.

Пример бесконечного цикла, будет выполняться, пока вы не нажмете Ctrl+C:

while True:
    print('бесконечность ', end='')

Бесконечные циклы, как правило, являются одним из источников неустойчивой работы программы.

Спецификация конструкции while.

Конструкция while используется для повторного выполнения кода внутри цикла, пока выражение истинно True:

while_stmt :: = "while" expression":" suite
                ["else" ":" suite]

Конструкция while многократно проверяет выражение, при этом выполняет код внутри блока while, и если expression стало ложно, то выполняется код внутри блока else, если он присутствует, и цикл завершается.

  • Оператор break: выполняется код внутри while до оператора break и завершает цикл без выполнения блока внутри else.
  • Оператор continue: выполняется код внутри while до оператора continue, пропускает оставшуюся часть кода и возвращается к проверке выражения.

Применим оператор break и continue в коде while/else и посмотрим на их поведение. Будем создавать список четных чисел из последовательности чисел от 0 до 14

lst = list(range(15))
new_lst = []
i = 0
while len(new_lst) < 13:
    i += 1
    # если число 8 есть в новом списке
    if 8 in new_lst:
        # прерываем цикл, при этом блок else не выполнится
        break
    # остаток от деления элемента списка
    a = lst[i] % 2
    # если элемент списка не четный
    if a != 0:
        # пропускаем оставшийся код
        continue
    # добавление в список числа
    new_lst.append(lst[i])
else:
    print ("Напечатает, если убрать условие с break")

print(new_lst)
# Код выведет:
[2, 4, 6, 7]