Цикл while

Модуль 1: Python Core
Рівень 3 , Лекція 8
Відкрита

9.1 Умовний цикл

Цикл for чудово підходить для ситуацій, коли ми точно знаємо, скільки разів хочемо виконати блок команд нашого циклу. Але така ситуація буде не завжди. Приблизно в половині випадків блок команд потрібно виконувати, поки істинна деяка умова (правило).

Саме для цього в мові Python є цикл while. Його загальний вигляд ще простіший, ніж у циклі for:


while умова:
    команда1 
    команда1 
    командаN 

Цикл буде виконуватися до тих пір, поки умова істинна.

Важливо! Щоб цикл не виконувався нескінченно, потрібно щоб всередині блоку команд відбувалося щось, що впливає на умову. Щоб ця умова колись змогла стати хибною і цикл завершився.

Приклад:

Приклад Пояснення

count = 0
while count < 5:
    print(count)
    count += 1
Цикл виведе на екран числа 0 1 2 3 4

У циклі while нескінченно виконуються дві речі:

  • Перевіряється умова.
  • Виконується блок команд.

Якщо умова була істинною, то виконається блок команд. Якщо раптом умова хибна (навіть якщо блок команд жодного разу не виконався), то цикл закінчиться.

Ще приклад циклу while, поєднаного з введенням невідомої кількості даних користувачем:

Приклад Пояснення

user_input = ""
while user_input != "exit":
    user_input = input("Введіть 'exit' для виходу: ")
    print(user_input)
Цикл буде друкувати на екран всі дані, доки користувач не введе слово 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 може ускладнити розуміння того, які дані обробляються циклом, особливо в складних циклах з безліччю умов. Дотримуйтесь розумного балансу.

Коментарі (4)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
Semen Рівень 21
3 червня 2025
А, що за дивна умова not fruit І, чому, вона рівна порожньому значенню?
Oberon Рівень 22
4 червня 2025
тому що Python інтерпретує всі значення як True або False False це: 0, 0.0, " ", ' ', None та ще кілька В нашому випадку виконуєтся перевірка на "пустий рядок" Цикл for проходить по кожному елементу списку data, по одному за раз. Змінна fruit буде приймати значення: "apple", "banana", "", "cherry", "date". if not fruit: перевіряє, чи є fruit "хибним" значенням. Якщо умова виконується (тобто рядок порожній), то continue наказує циклу перейти до наступної ітерації, пропускаючи print.
Валерий Рівень 18
10 жовтня 2024
Якщо тип введених данних не приводити до (float),буде помілка)))
29 січня 2025
А чому так? Навіщо та саме float, чому не int?