Циклы while: управление повторениями в Python

Раздел: Основы Python -> Управляющие конструкции

Цикл while: основы и синтаксис

Цикл while выполняет блок кода, пока условие истинно. Это основная конструкция для повторения действий с проверкой перед каждой итерацией.


count = 0
while count < 5:
    print(f"Итерация {count}")
    count += 1
    

оператор case в python (оператор case (match) в python)

Итерация 0
Итерация 1
Итерация 2
Итерация 3
Итерация 4
    

Match case python (конструкция match-case в python)

На каждом шаге проверяется count < 5. Как только значение достигает 5, цикл завершается. count += 1 обязательно обновляет переменную, иначе цикл станет бесконечным.

Типичная ошибка: забыть изменить счётчик внутри цикла. Программа зависнет.

Решение: всегда предусматривать изменение переменной, влияющей на условие.

Как прервать цикл досрочно с помощью break?

Оператор break немедленно выходит из цикла, игнорируя условие.


i = 0
while i < 10:
    if i == 5:
        break
    print(i)
    i += 1
    

операторы ветвления в языке python (условные операторы в python)

0
1
2
3
4
    

Return s s python (оператор return в python)

Цикл прервался, когда i стало 5. Оставшиеся итерации не выполняются.

Ошибка: использование break без понимания логики может привести к пропуску важных действий.

Как пропустить часть итерации с помощью continue?

continue прерывает текущую итерацию и переходит к следующей проверке условия.


n = 0
while n < 10:
    n += 1
    if n % 2 == 0:
        continue
    print(n)
    

оператор выбора в python (оператор выбора if в python)

1
3
5
7
9
    

Python пустая команда (пустая команда pass в python)

Чётные числа пропускаются, цикл продолжает работу.

Если забыть обновить счётчик до continue, цикл может зациклиться.

Что такое блок else в цикле while?

Блок else выполняется, если цикл завершился естественным образом (без break).


num = 0
while num < 3:
    print(num)
    num += 1
else:
    print("Цикл завершён по условию")
    

как на языке python записывается полное ветвление (полное ветвление в python)

0
1
2
Цикл завершён по условию
    

циклы в python примеры (примеры циклов в python)

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

Путаница: else срабатывает, даже если тело цикла не выполнялось ни разу (условие сразу False).

Как создать вечный цикл с выходом по условию?

Конструкция while True создаёт бесконечный цикл, который прерывается только через break.


while True:
    cmd = input("Введите команду (exit для выхода): ")
    if cmd.lower() == "exit":
        break
    print(f"Выполняю: {cmd}")
    

программа с циклом while python (программа с циклом while на python)

Введите команду (exit для выхода): start
Выполняю: start
Введите команду (exit для выхода): exit
    

For и while python в чем разница (разница между циклами for и while в python)

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

Опасность: если забыть break, программа будет работать бесконечно.

Как использовать несколько условий в while?

Можно комбинировать условия логическими операторами and, or, not.


a, b = 0, 10
while a < 5 and b > 5:
    print(f"a={a}, b={b}")
    a += 1
    b -= 1
    

Python if then else (условный оператор if then else в python)

a=0, b=10
a=1, b=9
a=2, b=8
a=3, b=7
a=4, b=6
    

Цикл выполняется, пока оба условия истинны.

Сложные условия могут ухудшить читаемость. Лучше выносить логику в отдельную функцию.

- While языка python (цикл while в python)
- циклы в python конструкции (циклы while в python)

Расширенные примеры использования цикла while

Пример

# Пример 1: Чтение строк из файла до конца
with open("data.txt", "r") as f:
    line = f.readline()
    while line:
        print(line.strip())
        line = f.readline()
    else:
        print("Файл прочитан полностью")
Первая строка
Вторая строка
...
Файл прочитан полностью

Цикл продолжается, пока readline() возвращает непустую строку. Блок else выполняется после выхода по условию.

Пример

# Пример 2: Игровой цикл с условием победы
lives = 3
score = 0
while lives > 0:
    print(f"Жизней: {lives}, Очки: {score}")
    action = input("Нажми w (успех) или l (проигрыш): ")
    if action == 'w':
        score += 10
    elif action == 'l':
        lives -= 1
    else:
        print("Неверная команда")
print("Игра окончена")
Жизней: 3, Очки: 0
Нажми w (успех) или l (проигрыш): w
Жизней: 3, Очки: 10
Нажми w (успех) или l (проигрыш): l
Жизней: 2, Очки: 10
...
Игра окончена

Цикл проверяет количество жизней после каждого действия.

Пример

# Пример 3: Числа Фибоначчи до предела
limit = 50
a, b = 0, 1
while a <= limit:
    print(a, end=' ')
    a, b = b, a + b
0 1 1 2 3 5 8 13 21 34 

Здесь while проверяет значение a, а вычисление следующего числа происходит в конце итерации.

Пример

# Пример 4: Обработка ввода с проверкой
while True:
    user_input = input("Введите положительное число: ")
    try:
        number = float(user_input)
        if number > 0:
            print(f"Квадрат числа: {number**2}")
            break
        else:
            print("Число должно быть положительным")
    except ValueError:
        print("Это не число, попробуйте снова")
Введите положительное число: -5
Число должно быть положительным
Введите положительное число: abc
Это не число, попробуйте снова
Введите положительное число: 4
Квадрат числа: 16.0

Бесконечный цикл с обработкой ошибок и проверкой условия внутри.

Пример

# Пример 5: Вложенные циклы while для матрицы
matrix = [
    [1, 2, 3],
    [4, 5, 6]
]
i = 0
while i < len(matrix):
    j = 0
    while j < len(matrix[i]):
        print(f"matrix[{i}][{j}] = {matrix[i][j]}")
        j += 1
    i += 1
matrix[0][0] = 1
matrix[0][1] = 2
matrix[0][2] = 3
matrix[1][0] = 4
matrix[1][1] = 5
matrix[1][2] = 6

Внешний цикл перебирает строки, внутренний - столбцы. Важно не перепутать счётчики.

Пример

# Пример 6: Цикл с задержкой (time.sleep)
import time
seconds = 5
while seconds > 0:
    print(f"Осталось {seconds} секунд")
    time.sleep(1)
    seconds -= 1
print("Время вышло!")
Осталось 5 секунд
Осталось 4 секунд
...
Осталось 1 секунд
Время вышло!

Используется для таймеров или ожидания между итерациями.

Циклы while в Python - comments

En
циклы в python конструкции (python)