Зарегистрируйтесь, чтобы продолжить обучение

Цикл While Основы Python

Цикл while

Циклы в программировании

Во многих задачах нужно выполнять одни и те же действия несколько раз. Например, искать в книге нужную фразу: страницу за страницей, пока не найдём совпадение. Сколько раз придётся повторить поиск, заранее неизвестно, но шаг всегда одинаковый — открыть страницу и проверить её.

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

Первый пример

Начнём с самой простой задачи. Пусть нужно несколько раз вывести одну и ту же строку "Hello!". Без цикла это пришлось бы делать вручную, повторяя вызовы print(). С циклом это выглядит так:

counter = 0
while counter < 2:
    print("Hello!")
    counter = counter + 1

# => Hello!
# => Hello!

Конструкция while задаёт повторение. Её синтаксис состоит из трёх частей:

  • ключевое слово while
  • условие (предикат), стоящее после while и проверяемое на каждой итерации
  • блок кода — тело цикла, которое выполняется, пока условие истинно

Условие после while проверяется перед каждой итерацией. Если оно истинно (True), выполняется тело цикла — все строки кода с отступом. Когда выполнение тела завершается, интерпретатор возвращается обратно к проверке условия. Если условие остаётся истинным, цикл повторяется снова. Как только условие становится ложным (False), цикл останавливается, и программа продолжает работу со строк, которые идут дальше за циклом.

В примере используется переменная counter. Она играет роль счётчика цикла:

  1. сначала ей задаётся начальное значение (counter = 0),
  2. на каждой итерации значение увеличивается (counter = counter + 1),
  3. проверка counter < 2 определяет, нужно ли продолжать цикл.

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

Работа цикла по шагам

Старт: counter = 0

Шаг 1. Проверка условия counter < 2: подставляем 0 < 2 → истина. Заходим в тело цикла. Выполняется print("Hello!") → на экран выводится Hello!. counter = counter + 1 меняет значение: было 0, стало 1.

Шаг 2. Возврат к проверке условия counter < 2: теперь 1 < 2 → истина. Снова тело цикла. print("Hello!") → выводится Hello!. counter = counter + 1: было 1, стало 2.

Шаг 3. Снова проверка counter < 2: теперь 2 < 2 → ложь. Цикл прекращается, управление переходит к следующей инструкции после цикла.

Итоговое состояние: counter = 2. За время работы цикла на экран дважды напечатано Hello!.

Отступы и продолжение программы

У цикла есть тело — это все строки кода, которые имеют одинаковый отступ после строки с while. Как только отступ заканчивается, значит, закончился и цикл.

counter = 0
while counter < 2:
    print("Hello!")
    counter = counter + 1

print("End of loop")

В этом примере строки с print("Hello!") и counter = counter + 1 относятся к циклу, потому что у них есть отступ. А строка print("End of loop") уже без отступа — она выполнится один раз, когда цикл завершится.

Таким образом, отступы показывают, какие строки относятся к циклу, а какие выполняются потом.

Цикл внутри функции

Напишем функцию, которая печатает числа от 1 до заданного аргумента:

def print_numbers(n: int) -> None:
    i = 1
    while i <= n:
        print(i)
        i = i + 1
    print("Finished!")

print_numbers(3)
# => 1
# => 2
# => 3
# => Finished!

Цикл while управляет печатью чисел. Когда условие перестаёт выполняться (i становится больше n), выполнение выходит из цикла и продолжается строкой print("Finished!").

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff