May 4, 2025

АйДаКодить

Цикл while в Python: полное руководство для начинающих

Циклы — одна из ключевых конструкций в программировании, позволяющая выполнять повторяющиеся действия. В Python существует два основных типа циклов:

  • for — используется для перебора элементов последовательности (например, списка или строки).
  • while — выполняется пока условие истинно.

В этой статье разберём цикл while: его синтаксис, применение и возможные ошибки.


1. Синтаксис цикла while

Цикл while повторяет блок кода, пока его условие остаётся истинным (True).

while условие:
    # Тело цикла (выполняется, пока условие True)

Пример 1: Простой счётчик

count = 0
while count < 5:
    print(f"Счётчик: {count}")
    count += 1  # Увеличиваем count на 1

Вывод:

Счётчик: 0  
Счётчик: 1  
Счётчик: 2  
Счётчик: 3  
Счётчик: 4  

Как только count становится равным 5, условие count < 5 становится False, и цикл завершается.


2. Бесконечный цикл и его прерывание

Если условие цикла всегда True, он будет выполняться бесконечно.

Пример 2: Бесконечный цикл

while True:
    print("Этот цикл никогда не закончится!")
    # Чтобы остановить программу, нажмите Ctrl+C

Как прервать цикл?

  1. break — досрочно завершает цикл.
  2. continue — пропускает текущую итерацию.

Пример с break

while True:
    user_input = input("Введите 'стоп' для выхода: ")
    if user_input.lower() == "стоп":
        print("Цикл завершён!")
        break
    print(f"Вы ввели: {user_input}")

Вывод:

Введите 'стоп' для выхода: привет  
Вы ввели: привет  
Введите 'стоп' для выхода: стоп  
Цикл завершён!  

Пример с continue

num = 0
while num < 5:
    num += 1
    if num == 3:
        continue  # Пропускаем 3
    print(num)

Вывод:

1  
2  
4  
5  

3. Цикл while с else

В Python у цикла while может быть блок else, который выполнится, если цикл завершился естественным образом (не через break).

Пример 3: while-else

count = 0
while count < 3:
    print(count)
    count += 1
else:
    print("Цикл завершён без break!")

Вывод:

0  
1  
2  
Цикл завершён без break!  

Если бы внутри цикла был break, блок else не выполнился бы.


4. Практические примеры

Пример 4: Проверка ввода пользователя

while True:
    age = input("Введите ваш возраст: ")
    if age.isdigit() and 0 < int(age) < 120:
        print(f"Ваш возраст: {age}")
        break
    print("Ошибка! Введите число от 1 до 119.")

Пример 5: Поиск числа в последовательности

numbers = [1, 3, 5, 7, 9]
index = 0
target = 5
found = False

while index < len(numbers):
    if numbers[index] == target:
        found = True
        print(f"Число {target} найдено на позиции {index}!")
        break
    index += 1
else:
    print("Число не найдено.")

5. Возможные ошибки

  1. Бесконечный цикл
    Если забыть изменить переменную условия, цикл будет работать вечно x = 1 while x < 10: # x всегда остаётся 1 → бесконечный цикл print(x)
  2. Неправильное условие
    Убедитесь, что условие рано или поздно станет False.