Циклы необходимы для многократного повторения действий. В этом уроке мы познакомимся с циклом while, циклом с условием. Он выполняет блок кода, пока заданное условие истинно.
Цикл while: синтаксис и работа
Синтаксис цикла while в Python:
while условие:
# тело цикла
else:
# выполняется, если условие стало ложным
Схема работы:
- Программа достигает цикла while.
- Проверяется условие.
- Если условие истинно, выполняется тело цикла.
- После выполнения тела цикла, условие проверяется снова. Цикл повторяется до тех пор, пока условие не станет ложным.
- Если блок else присутствует, он выполняется после того, как условие станет ложным. В большинстве случаев блок else в цикле while не используется.
Примеры использования цикла while
Циклы позволяют сократить код. Например, вывод фразы «Привет мир» тысячу раз без цикла потребовал бы тысячи строк кода. С циклом это можно сделать в нескольких строках.
Счетчик и условия в цикле while
Для отслеживания количества повторений цикла используется счетчик – переменная, значение которой изменяется на каждой итерации. В условии цикла можно использовать логические операторы (and, or, not). Важно правильно использовать логические операторы, чтобы избежать бесконечных циклов.
Пример: вывод чисел от 1 до 10
Задача: вывести числа от 1 до 10.
x = 1
while x <= 10:
print(x)
x += 1
Без изменения значения x цикл станет бесконечным. x += 1 эквивалентно x = x + 1, но является более кратким вариантом записи (комбинированное присваивание).
Цикл while в одну строку
Если тело цикла состоит из одной строки, цикл можно записать в одну строку:
x = 1; while x < 5: print(x); x += 1
Вложенные циклы while
Один цикл может быть вложен в другой. Пример: вывод таблицы умножения.
x = 1
while x <= 9:
a = 1
while a <= 9:
print(f"{x} * {a} = {x * a}", end=" | ")
a += 1
print()
x += 1
Задача: сумма цифр числа
Задача: пользователь вводит число, программа вычисляет сумму его цифр.
number = int(input())
s = 0
while number > 0:
s += number % 10
number //= 10
print(s)
В этом примере number % 10 возвращает последнюю цифру, а number //= 10 удаляет последнюю цифру. Цикл продолжается, пока число больше 0.
Цикл while – мощный инструмент для повторения действий в Python. Важно правильно формулировать условие выхода из цикла, чтобы избежать бесконечных циклов. Вложенные циклы позволяют создавать сложные алгоритмы.