Циклы используются для повторения выполнения определенного блока кода. Например, если нам нужно показать определенное сообщение 100 раз, то мы можем использовать цикл. Это простой пример, но с помощью циклов мы можем сделать многое.
На предыдущем уроке мы рассматривали цикл for в Python. Теперь мы узнаем о цикле while.
Цикл while в Python
Цикл while используется для выполнения блока кода до тех пор, пока не будет достигнуто определенное условие.
Синтаксис цикла while:
1 2 |
while условие: # блок кода для выполнения |
Алгоритм действий:
Сначала цикл while обрабатывает условие
.
Если условие
вычисляется как True
, то выполняется код внутри цикла while.
Затем условие
повторно обрабатывается. Этот процесс продолжается до тех пор, пока условие
не станет False
.
Если условие
вычисляется как False
, цикл завершает свое выполнение.
Блок-схема выполнения цикла while в Python:
Рассмотрим пример использования цикла while в Python:
1 2 3 4 5 6 7 8 9 10 |
# В этой программе мы выводим числа от 1 до 5 # Инициализация переменных i = 1 n = 5 # Цикл while с i = 1 до 5 while i <= n: print(i) i = i + 1 |
Результат:
1
2
3
4
5
Вот как работает эта программа:
Переменные | Условие: i <= n | Действие |
i = 1 n = 5 |
True | Выводится 1. Переменная i увеличивается до 2. |
i = 2 n = 5 |
True | Выводится 2. Переменная i увеличивается до 3. |
i = 3 n = 5 |
True | Выводится 3. Переменная i увеличивается до 4. |
i = 4 n = 5 |
True | Выводится 4. Переменная i увеличивается до 5. |
i = 5 n = 5 |
True | Выводится 5. Переменная i увеличивается до 6. |
i = 6 n = 5 |
False | Цикл завершен. |
Рассмотрим еще один пример использования цикла while в Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# В этой программе мы вычисляем сумму чисел до тех пор, # пока пользователь не введет 0 total = 0 number = int(input('Enter a number: ')) # Складываем числа, пока number не будет равен 0 while number != 0: total += number # total = total + number # Запрашиваем пользовательский ввод number = int(input('Enter a number: ')) print('total =', total) |
Результат:
Enter a number: 12
Enter a number: 4
Enter a number: -5
Enter a number: 0
total = 11
Здесь цикл while повторяется до тех пор, пока пользователь не введет ноль. Когда пользователь вводит ноль, условие проверки обрабатывается как False
, и цикл завершается.
Бесконечный цикл while в Python
Если условие цикла всегда истинно (True
), цикл будет выполняться бесконечное количество раз (пока не заполнится память). Например:
1 2 3 4 5 |
age = 32 # Условие для проверки всегда равно True while age > 18: print('You can vote') |
Здесь условие всегда обрабатывается как True
. Следовательно, тело цикла будет выполняться бесконечное количество раз.
Цикл while с частью else в Python
В Python цикл while может иметь необязательный блок else, который будет выполняться после того, как условие цикла станет False
.
1 2 3 4 5 6 7 |
counter = 0 while counter < 3: print('Inside loop') counter = counter + 1 else: print('Inside else') |
Результат:
Inside loop
Inside loop
Inside loop
Inside else
Блок else не будет выполняться, если цикл while остановлен оператором break
. Например:
1 2 3 4 5 6 7 8 9 10 11 12 |
counter = 0 while counter < 3: # Цикл завершает свое выполнение из-за оператора break. # Блок else не выполняется if counter == 1: break print('Inside loop') counter = counter + 1 else: print('Inside else') |
Результат:
Inside loop
for против while в Python
Цикл for обычно используется, когда известно количество итераций. Например:
1 2 3 |
# Этот цикл повторяется 4 раза (от 0 до 3) for i in range(4): print(i) |
Цикл while обычно используется, когда количество итераций неизвестно. Например:
1 2 |
while условие: # код выполняется до тех пор, пока условие не станет False |