9.1 Условный цикл
Цикл for
отлично подходит для ситуации, когда
мы точно знаем сколько раз мы хотим выполнить блок команд нашего цикла. Но
такая ситуация будет не всегда. Примерно в половине случаев блок команд
нужно выполнять пока истинно некоторое условие (правило).
Именно для этого в языке Python есть цикл
while
. Его общий вид еще проще, чем у цикла for:
while условие:
команда1
команда1
командаN
Цикл будет выполняться до тех пор, пока условие истинно.
Важно! Чтобы цикл не выполнялся бесконечно, нужно чтобы внутри блока команд происходило что-то, что влияет на условие. Чтобы это условие когда-то смогло стать ложным и цикл завершился.
Пример:
Пример | Пояснение |
---|---|
|
Цикл выведет на экран числа 0 1 2 3 4 |
В цикле while
бесконечно выполняются две вещи:
- Проверяется условие.
- Выполняется блок команд.
Если условие было истинно, то выполнится блок команд. Если вдруг условие ложно (даже если блок команд ни разу не выполнился), то цикл закончится.
Еще пример цикла while
, совмещенного с вводом
неизвестного количества данных пользователем:
Пример | Пояснение |
---|---|
|
Цикл будет печатать на экран все данные, пока пользователь не введет слово exit. После этого цикл напечатает его и завершится. |
9.2 Оператор break
В Python оператор break
используется для
немедленного прекращения выполнения цикла
while
или цикла for
. Этот
оператор оказывается чрезвычайно полезным в ситуациях, когда необходимо
выйти из цикла до его нормального завершения по условию.
Применение break
увеличивает гибкость управления потоком
выполнения программы, позволяя реагировать на динамически изменяющиеся
условия во время выполнения.
Основное использование:
for num in range(10):
if num == 5:
break # Прекращает цикл, как только num достигает 5
print(num)
В этом примере цикл будет печатать числа от 0 до 4. Как только num достигает
5, цикл прерывается оператором break
.
Применение в вечных циклах:
while True:
response = input("Введите 'exit' для выхода: ")
if response == 'exit':
break
Здесь break
используется для выхода из бесконечного цикла,
когда пользователь вводит 'exit'.
Оператор break
также часто используется для прерывания
выполнения вложенных циклов, обработки исключительных ситуаций, где
требуется немедленное прекращение действий, а также для прерывания процессов
в многопоточных или сетевых приложениях.
Например, в задачах поиска или сортировки, где после нахождения нужного элемента дальнейшее выполнение цикла не имеет смысла:
elements = [1, 2, 3, -99, 5]
# Поиск первого отрицательного элемента
for element in elements:
if element < 0:
print("Найден отрицательный элемент: ", element)
break
Лучшие практики включают использование break
с
умом, чтобы не усложнять логику программы и не делать её трудной для
понимания. Хорошей практикой является комментирование причин прерывания
цикла, особенно если они не очевидны из контекста.
Использование break
должно быть обоснованным и целесообразным.
Например, для улучшения читаемости и эффективности кода, а не просто ради "поломки" логики.
Эффективное использование этого оператора может значительно улучшить
производительность программ, особенно в алгоритмах с интенсивными
вычислениями.
9.3 Оператор continue
Оператор continue в Python является мощным инструментом для
управления потоком выполнения циклов.
Он пропускает оставшуюся часть кода в текущей итерации цикла
и переходит к следующей итерации. Этот оператор часто используется в циклах
for
и while
для пропуска определённых условий без
прерывания всего цикла.
Основы использования оператора continue
Вот как работает continue в простом цикле:
for i in range(10):
if i % 2 == 0:
continue
print(i)
В этом примере цикл выводит только нечётные числа от 1 до 9. Каждый раз,
когда i
оказывается чётным (делится на 2 без остатка), оператор
continue
срабатывает, пропуская вызов функции
print()
и переходя к следующей итерации.
Применение continue в реальных сценариях
Фильтрация данных: continue может использоваться для предварительной фильтрации данных перед выполнением более сложных операций в цикле.
data = ["apple", "banana", "", "cherry", "date"]
for fruit in data:
if not fruit:
continue # Пропустить пустые строки
print(fruit.capitalize())
Пропуск специфических условий: Особенно полезен в ситуациях, где нужно пропустить определённые элементы на основе сложных условий.
scores = [92, 85, 99, 78, 82, 100, 67, 88]
for score in scores:
if score < 80:
continue # Пропустить низкие баллы
print("Поздравляем, ваш балл: ", score)
Оператор continue
в Python предлагает элегантный способ
упростить код и сделать его более читаемым за счёт пропуска
несоответствующих элементов в итерациях. Чрезмерное использование
continue может усложнить понимание того, какие данные обрабатываются
циклом, особенно в сложных циклах с множеством условий. Соблюдайте
разумный баланс.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ