Цикл while в Python: циклы с предусловием
Синтаксис цикла while, условие продолжения, счетчик цикла, бесконечные циклы, операторы break и continue, подсчет цифр числа.
Цикл while («пока») — универсальная циклическая конструкция в языке Python, которая повторяет выполнение блока команд (тела цикла) до тех пор, пока проверяемое условие остается ИСТИННЫМ (True).
Синтаксис цикла while:
while условие:
команда1
команда2
Алгоритм работы:
1. Проверяется логическое условие;
2. Если условие ИСТИННО (True), выполняется тело цикла с отступом 4 пробела, после чего управление возвращается обратно на проверку условия в шаге 1;
3. Если условие ЛОЖНО (False), цикл завершает работу, и программа переходит к следующей строке без отступа.
Если условие ложно с самого начала, тело цикла не выполнится ни одного раза.
Цикл while
Инкремент (i += 1)
Классический паттерн использования цикла while со счетчиком:
i = 1 # 1. Инициализация счетчика
while i <= 5: # 2. Условие продолжения
print(i) # 3. Тело цикла
i += 1 # 4. Шаг изменения счетчика (инкремент)
print("Цикл завершен!")
Этот код напечатает числа от 1 до 5.
ОШИБКА «БЕСКОНЕЧНЫЙ ЦИКЛ»: Если забыть написать команду шага счетчика i += 1, переменная i навсегда останется равной 1. Условие 1 <= 5 будет всегда истинным, и программа войдет в бесконечный цикл, бесконечно печатая единицы до принудительной остановки клавишами Ctrl+C.
Бесконечный цикл
while True:
Для тонкого управления ходом выполнения цикла служат специальные операторы:
• break — немедленно прерывает выполнение цикла и передает управление первой строке за пределами цикла;
Пример поиска первого делителя:
while i < n:
if n % i == 0:
print("Найден делитель:", i)
break
• continue — досрочно завершает текущую итерацию цикла и сразу переходит к следующей проверке условия, пропуская оставшиеся строки тела цикла.
break
continue
Цикл while идеально подходит для обработки чисел, количество цифр в которых заранее неизвестно (например, для любого числа N):
n = int(input("Введите число: "))
while n > 0:
digit = n % 10 # Взяли последнюю цифру
totalsum += digit # Прибавили к сумме
n //= 10 # Отрезали последнюю цифру
print("Сумма цифр:", totalsum)
