Codebra
29 января 2026 в 18:32

Урок 34. Цикл while в Python

Знакомимся со втором циклом Python - while.
📝

Внимание! На этой странице вы найдете материал урока из архивного курса по Python. Курс был написан в 2024 году и по-прежнему актуален для начинающих разработчиков.

Теоретический материал сохранен в исходном виде, а практические задания с автоматической проверкой вынесены в отдельные интенсивы и задания.

Полный список уроков доступен по тегу Архивный курс по Python и на странице первого урока.

📝 Кратко
  • Цикл while в Python предназначен для выполнения блока кода до тех пор, пока условие истинно.
  • Основное отличие применения цикла while от for - неизвестно точное количество итераций.
  • В Python нет операторов ++ и --, поэтому используется эквивалентная запись i += 1.
  • В уроке представлен пример игры с угадыванием числа с использованием цикла while и библиотеки random.
  • Инструкция while/else позволяет выполнить блок кода после завершения цикла.
  • В следующем уроке будут рассмотрены операторы break, continue и pass в Python.

Ранее вы познакомились с циклом for, так же вы уже знаете основные структуры данных в Python. Познакомимся со вторым циклом – while.

Цикл while предназначен для выполнения блока кода до тех пор, пока какое-то условие истинно. Синтаксис цикла while в Python представлен ниже:

while условие:
    инструкция 1
    инструкция 2
    ...

Чаще всего цикл while используется, когда неизвестно точное количество итераций цикла (итерация – это один шаг цикла, т.е. одно выполнение всего блока кода этого цикла). Это основное отличие цикла while от for.

После того, как условие в цикле while становится ложным, работа цикла прекращается и управление передается следующей инструкции (в примере, инструкции 3):

while условие:
    инструкция 1
    инструкция 2
инструкция 3

Рассмотрим пример:

i = 1
while i <= 10:
    print(i)
    i += 1 

В этом примере мы выводим в консоль цифры от 1 до 10 при помощи цикла while. Сначала нам необходимо инициализировать переменную i, чтобы с каждой итерацией цикла мы могли увеличивать ее на единицу. Согласен, это пример не показывает различие цикла while и for.

Обратите внимание, в Python нет операторов ++ и --, которые имеются во многих языках программирования. Поэтому мы используем эквивалентную запись i += 1.

Рассмотрим следующий:

count = 1
i = int(input())

while (i != 10):
    i = int(input())
    count += 1
print(count)

Получилась небольшая игра, где пользователь вводит число до тех пор, пока не угадает. Если вспомним урок про генерацию случайных чисел, то можно улучшить нашу игру.

import random
count = 1
rand_number = random.randint(1, 10)
i = int(input())

while (i != rand_number):
    i = int(input())
    count += 1
print(count)  

Здесь мы подключаем библиотеку random, после чего инициализируем переменную count для подсчета попыток угадать число. Генерируем случайное число при помощи метода randint() и сохраняем в переменной rand_number. Далее предлагаем пользователю ввести число. После это число сравнивается с условием в цикле while и, в зависимости от результата, выполняются инструкции в цикле while n-ое количество раз, пока условие не будет ложным.

Инструкция while/else

После цикла while можно указать ключевое слово else:

while условие:
    инструкция
else:
    инструкция

Блок else будет выполнен один раз после завершения цикла. Казалось бы, зачем это нужно, если инструкции и так будут выполняться после завершения цикла. Смысл появится, когда мы познакомимся с инструкцией break в следующем уроке. Мы еще вернемся к инструкции while/else.

В этом уроке мы познакомились с циклом while, который позволяет выполнять блок кода до тех пор, пока условие истинно. В следующем уроке разберемся с операторами breakcontinue и pass в Python.

📝

Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегу Python.