В прошлой статье мы научились заставлять программу принимать решения.
Например:
age = 20
if age >= 18:
print("Доступ разрешён")
Но что делать, если действие нужно выполнить много раз?
Например:
- спрашивать пароль, пока он не станет правильным;
- повторять меню программы;
- ждать, пока пользователь введёт корректное значение.
Для этого существуют циклы.
Повторяем действия
Представим, что мы хотим вывести числа от 1 до 5.
Без цикла пришлось бы написать:
print(1)
print(2)
print(3)
print(4)
print(5)
Работает, но выглядит неудобно.
А если нужно вывести числа от 1 до 1000?
Для этого и нужны циклы.
Первый цикл while
Цикл while означает:
Пока условие истинно - выполняй код.
Например:
count = 1
while count <= 5:
print(count)
count = count + 1
Результат:
1
2
3
4
5
Разберём, что произошло.
Сначала:
count = 1
Мы создали переменную со значением 1.
Затем Python проверяет условие:
count <= 5
Пока оно истинно, выполняется блок внутри while.
Почему цикл остановился?
Очень важная часть:
count = count + 1
Каждый проход цикла увеличивает число.
Получается:
1 → 2 → 3 → 4 → 5 → 6
Когда count становится равным 6, условие
count <= 5
становится ложным.
Цикл заканчивается.
Бесконечный цикл
Что будет, если забыть изменить значение?
Например:
count = 1
while count <= 5:
print(count)
Условие всегда остаётся истинным.
Программа будет бесконечно выводить:
1
1
1
1
...
Такой цикл называется бесконечным.
Поэтому внутри while обычно должно быть что-то, что со временем изменяет условие.
Остановка цикла с помощью break
Иногда нужно остановить цикл раньше.
Для этого существует команда break.
Например:
while True:
answer = input("Введите команду: ")
if answer == "exit":
break
print("Вы ввели:", answer)
Теперь программа будет работать, пока пользователь не введёт:
exit
После этого цикл завершится.
Пропуск одной итерации с continue
Иногда нужно не остановить цикл, а просто перейти к следующему повторению.
Для этого используется continue.
Например:
number = 0
while number < 5:
number = number + 1
if number == 3:
continue
print(number)
Результат:
1
2
4
5
Когда number стал равен 3, Python пропустил вывод и сразу начал следующий проход.
Что мы сегодня узнали
Сегодня мы познакомились с первым циклом в Python.
whileповторяет код, пока условие истинно.- Условие проверяется перед каждым повторением.
- Внутри цикла нужно изменять состояние, иначе можно получить бесконечный цикл.
breakполностью завершает цикл.continueпропускает текущий проход и переходит к следующему.
Попробуйте сами
Напишите программу, которая спрашивает пароль.
Например:
password = ""
while password != "python":
password = input("Введите пароль: ")
print("Доступ разрешён")
Попробуйте:
- ввести неправильный пароль несколько раз;
- ввести правильный пароль;
- добавить ограничение на количество попыток.
Что дальше?
Теперь мы умеем повторять действия, пока выполняется условие.
Но иногда мы заранее знаем, что хотим пройтись по набору элементов.
Например:
- вывести все числа от 1 до 10;
- обработать список пользователей;
- перебрать символы строки.
Для этого существует цикл for, с которым мы познакомимся в следующей статье.