Цикли While
Цикли while
є ключовим інструментом для роботи з невизначеною ітерацією, що корисно у випадках, коли кількість повторень невідома заздалегідь, наприклад, під час моніторингу рівня запасів доти, доки вони не досягнуть певного порогу.
Подивіться, як Олексій демонструє використання циклів while
для обробки динамічних ситуацій:
Цикл while
у Python виконує блок коду доти, доки задана умова залишається True
.
Синтаксис
Щоб почати цикл while
, потрібно визначити лічильник і після нього використати ключове слово while
з булевою умовою. Після умови ставиться двокрапка :
, яка позначає початок блоку коду циклу.
Цикл виконуватиметься повторно доти, доки умова не стане False
. Зазвичай лічильник оновлюється всередині циклу, щоб у підсумку умова стала False
і цикл завершився.
Розгляньте цей приклад циклу while
:
1234567891011# Handling a queue at a grocery store checkout queue_length = 5 # Initial number of people in the queue while queue_length > 0: # Start the `while` loop as long as the queue isn't empty print(f"Current queue size: {queue_length}") # Simulate serving a customer print("Serving the next customer...") # Decrease the queue length by 1 as a customer leaves # The `-=` operator is a shortcut for `queue_length = queue_length - 1` queue_length -= 1
У цьому прикладі queue_length
виступає як лічильна змінна, що починається з 5
. З кожною ітерацією циклу значення queue_length
зменшується на 1
, доки не досягне 0
. У цей момент цикл завершується, оскільки умова 0 > 0
оцінюється як False
.
Примітка
Важливо оновлювати лічильну змінну всередині циклу, щоб зрештою досягти умови завершення циклу. Без цього цикл буде виконуватися безкінечно, що унеможливить виконання подальшого коду.
Приклад застосування
Уявіть, що ви керуєте запасами молока в продуктовому магазині. Необхідно стежити, щоб запаси не опускалися нижче певного рівня, а коли це трапляється — поповнювати їх до потрібної кількості.
У такій ситуації зручно використовувати цикл while
, оскільки він дозволяє поповнювати молоко поступово, кількома ітераціями, доки запас не досягне бажаного рівня. Без циклу while
довелося б одразу розраховувати точну кількість молока для поповнення.
Наприклад, уявімо, що працівник магазину може поповнити лише фіксовану кількість молока за один раз (наприклад, 20
упаковок за одне поповнення). Якщо запас ще не відновлено повністю, працівник повертається на склад за наступною партією молока.
123456789101112131415161718# Initial amount of milk in stock milk_stock = 15 # Minimum stock level before restocking is necessary min_stock = 50 # Quantity a worker can restock at one time restock_quantity = 20 # Start the loop to restock milk until the stock exceeds the minimum required level while milk_stock < min_stock: # If the loop is running, the condition is `True`, indicating we need more milk print(f"Milk stock is low: {milk_stock} units remaining.") # Simulate the process of restocking milk print("Restocking milk...") # Increase the stock by the quantity the worker can bring in one trip milk_stock += restock_quantity # Output the final stock level after restocking is complete print(f"Milk stock updated: {milk_stock} units, which is now sufficient.")
Примітка
milk_stock += restock_quantity
еквівалентно записуmilk_stock = milk_stock + restock_quantity
. Це просто більш лаконічний і зрозумілий спосіб виразити ту саму операцію.
Блок-схема вище ілюструє логіку роботи циклу while
для керування запасами молока. Зверніть увагу, що змінна-лічильник milk_stock
, яка починається з 15
, збільшується на значення restock_quantity
з кожною ітерацією циклу.
Цикл виконується доки milk_stock
перевищить min_stock
порогове значення 50
, після чого зупиняється.
Swipe to start coding
Керування запасами продуктового магазину за допомогою while-циклів для забезпечення мінімального рівня запасів для Bread
, Eggs
та Apples
. Кількість для поповнення зберігається у словнику.
- Використати цикл
while
для перевірки, чи запас"Bread"
нижчий за мінімальний. Якщо так, збільшити його запас, використовуючи відповідну кількість для поповнення зі словника. - Повторити цю ж логіку для
"Eggs"
та"Apples"
, кожен у власному цикліwhile
. - Після поповнення пройтись по словнику
inventory
за допомогою циклуfor
і вивести фінальні рівні запасів для всіх товарів.
Вимоги до виводу
- Для кожного поповненого товару вивести:
"<Item> stock is low: <$current_stock> units. Restocking..."
- Після завершення поповнення вивести
Final Inventory after restocking:
і оновлені рівні запасів:
"<Item>: <$current_stock> units (Minimum required: <$minimum_stock> units)"
- Додати порожній рядок перед фінальним інвентарем, використовуючи
\n
. - Використовувати f-рядки для форматування та одинарні лапки всередині подвійних лапок для ключів словника.
Примітка
Щоб уникнути конфліктів синтаксису у f-рядках, використовуйте подвійні лапки навколо рядка та одинарні всередині:
f"Bread stock is low: {inventory['Bread'][0]} units."
Використовуйте\n
для початку нового рядка у виводі:"First line.\nSecond line."
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 2.17
Цикли While
Свайпніть щоб показати меню
Цикли while
є ключовим інструментом для роботи з невизначеною ітерацією, що корисно у випадках, коли кількість повторень невідома заздалегідь, наприклад, під час моніторингу рівня запасів доти, доки вони не досягнуть певного порогу.
Подивіться, як Олексій демонструє використання циклів while
для обробки динамічних ситуацій:
Цикл while
у Python виконує блок коду доти, доки задана умова залишається True
.
Синтаксис
Щоб почати цикл while
, потрібно визначити лічильник і після нього використати ключове слово while
з булевою умовою. Після умови ставиться двокрапка :
, яка позначає початок блоку коду циклу.
Цикл виконуватиметься повторно доти, доки умова не стане False
. Зазвичай лічильник оновлюється всередині циклу, щоб у підсумку умова стала False
і цикл завершився.
Розгляньте цей приклад циклу while
:
1234567891011# Handling a queue at a grocery store checkout queue_length = 5 # Initial number of people in the queue while queue_length > 0: # Start the `while` loop as long as the queue isn't empty print(f"Current queue size: {queue_length}") # Simulate serving a customer print("Serving the next customer...") # Decrease the queue length by 1 as a customer leaves # The `-=` operator is a shortcut for `queue_length = queue_length - 1` queue_length -= 1
У цьому прикладі queue_length
виступає як лічильна змінна, що починається з 5
. З кожною ітерацією циклу значення queue_length
зменшується на 1
, доки не досягне 0
. У цей момент цикл завершується, оскільки умова 0 > 0
оцінюється як False
.
Примітка
Важливо оновлювати лічильну змінну всередині циклу, щоб зрештою досягти умови завершення циклу. Без цього цикл буде виконуватися безкінечно, що унеможливить виконання подальшого коду.
Приклад застосування
Уявіть, що ви керуєте запасами молока в продуктовому магазині. Необхідно стежити, щоб запаси не опускалися нижче певного рівня, а коли це трапляється — поповнювати їх до потрібної кількості.
У такій ситуації зручно використовувати цикл while
, оскільки він дозволяє поповнювати молоко поступово, кількома ітераціями, доки запас не досягне бажаного рівня. Без циклу while
довелося б одразу розраховувати точну кількість молока для поповнення.
Наприклад, уявімо, що працівник магазину може поповнити лише фіксовану кількість молока за один раз (наприклад, 20
упаковок за одне поповнення). Якщо запас ще не відновлено повністю, працівник повертається на склад за наступною партією молока.
123456789101112131415161718# Initial amount of milk in stock milk_stock = 15 # Minimum stock level before restocking is necessary min_stock = 50 # Quantity a worker can restock at one time restock_quantity = 20 # Start the loop to restock milk until the stock exceeds the minimum required level while milk_stock < min_stock: # If the loop is running, the condition is `True`, indicating we need more milk print(f"Milk stock is low: {milk_stock} units remaining.") # Simulate the process of restocking milk print("Restocking milk...") # Increase the stock by the quantity the worker can bring in one trip milk_stock += restock_quantity # Output the final stock level after restocking is complete print(f"Milk stock updated: {milk_stock} units, which is now sufficient.")
Примітка
milk_stock += restock_quantity
еквівалентно записуmilk_stock = milk_stock + restock_quantity
. Це просто більш лаконічний і зрозумілий спосіб виразити ту саму операцію.
Блок-схема вище ілюструє логіку роботи циклу while
для керування запасами молока. Зверніть увагу, що змінна-лічильник milk_stock
, яка починається з 15
, збільшується на значення restock_quantity
з кожною ітерацією циклу.
Цикл виконується доки milk_stock
перевищить min_stock
порогове значення 50
, після чого зупиняється.
Swipe to start coding
Керування запасами продуктового магазину за допомогою while-циклів для забезпечення мінімального рівня запасів для Bread
, Eggs
та Apples
. Кількість для поповнення зберігається у словнику.
- Використати цикл
while
для перевірки, чи запас"Bread"
нижчий за мінімальний. Якщо так, збільшити його запас, використовуючи відповідну кількість для поповнення зі словника. - Повторити цю ж логіку для
"Eggs"
та"Apples"
, кожен у власному цикліwhile
. - Після поповнення пройтись по словнику
inventory
за допомогою циклуfor
і вивести фінальні рівні запасів для всіх товарів.
Вимоги до виводу
- Для кожного поповненого товару вивести:
"<Item> stock is low: <$current_stock> units. Restocking..."
- Після завершення поповнення вивести
Final Inventory after restocking:
і оновлені рівні запасів:
"<Item>: <$current_stock> units (Minimum required: <$minimum_stock> units)"
- Додати порожній рядок перед фінальним інвентарем, використовуючи
\n
. - Використовувати f-рядки для форматування та одинарні лапки всередині подвійних лапок для ключів словника.
Примітка
Щоб уникнути конфліктів синтаксису у f-рядках, використовуйте подвійні лапки навколо рядка та одинарні всередині:
f"Bread stock is low: {inventory['Bread'][0]} units."
Використовуйте\n
для початку нового рядка у виводі:"First line.\nSecond line."
Рішення
Дякуємо за ваш відгук!
Awesome!
Completion rate improved to 2.17single