Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Цикли While | Цикли
Вступ до Python
course content

Зміст курсу

Вступ до Python

Вступ до Python

1. Початок роботи
2. Змінні та Типи
3. Умовні оператори
4. Інші типи даних
5. Цикли
6. Функції

book
Цикли 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
copy

У цьому прикладі 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.")
copy

Примітка

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

У цьому завданні ви будете керувати запасами продуктів у продуктовому магазині, використовуючи цикли, щоб забезпечити відповідність продуктів їх мінімальним рівням запасів. Ви будете працювати з трьома товарами: Bread, Eggs та Apples. Ваша мета - оновити їх рівні запасів, використовуючи кількості для поповнення збережені в словнику, а потім надрукувати оновлений інвентар.

Інструкції до коду

  • Створіть цикл while, щоб перевірити, чи запас "Bread" нижче його мінімально необхідного рівня. Якщо так, збільшіть запас, додавши кількість для поповнення, вказану в словнику.
  • Аналогічно, налаштуйте цикл while для "Eggs", щоб перевірити, чи запас нижче мінімального рівня. Якщо потрібно, поповніть, додавши вказану кількість для поповнення.
  • Застосуйте ту ж логіку до "Apples", використовуючи цикл while, щоб забезпечити відповідність мінімальному рівню запасів.
  • Після поповнення всіх товарів, пройдіться по словнику інвентарю та надрукуйте остаточні рівні запасів для кожного товару.

Вимоги до виводу

  • Для кожного товару, який поповнюється, надрукуйте повідомлення, що вказує на поточний рівень запасів і що поповнення відбувається. Наприклад: "<Item> stock is low: <$current_stock> units. Restocking...".
  • Після завершення всіх поповнень, надрукуйте остаточний стан інвентарю у форматі: "<Item>: <$current_stock> units (Minimum required: <$minimum_stock> units)".
  • Використовуйте f-рядки для форматування вихідних повідомлень, і обов'язково використовуйте одинарні лапки всередині рядків з подвійними лапками для ключів словника.
  • Вставте новий рядок перед друком остаточного стану інвентарю, використовуючи послідовність екранування \n.

Примітка

Код вводить нові способи форматування рядків для кращої читабельності:

  • Всередині f-рядків можна використовувати одинарні лапки ' всередині рядків з подвійними лапками. Наприклад: f"Запас хліба низький: {inventory['Bread'][0]} одиниць.". Зовнішній рядок використовує подвійні лапки, тоді як 'Bread' використовує одинарні лапки, щоб уникнути конфліктів.
  • Ви можете вставити новий рядок у вивід, використовуючи послідовність екранування \n, як "Перша лінія.\nДруга лінія.", що розділить вивід на два рядки.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 2
toggle bottom row

book
Цикли 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
copy

У цьому прикладі 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.")
copy

Примітка

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

У цьому завданні ви будете керувати запасами продуктів у продуктовому магазині, використовуючи цикли, щоб забезпечити відповідність продуктів їх мінімальним рівням запасів. Ви будете працювати з трьома товарами: Bread, Eggs та Apples. Ваша мета - оновити їх рівні запасів, використовуючи кількості для поповнення збережені в словнику, а потім надрукувати оновлений інвентар.

Інструкції до коду

  • Створіть цикл while, щоб перевірити, чи запас "Bread" нижче його мінімально необхідного рівня. Якщо так, збільшіть запас, додавши кількість для поповнення, вказану в словнику.
  • Аналогічно, налаштуйте цикл while для "Eggs", щоб перевірити, чи запас нижче мінімального рівня. Якщо потрібно, поповніть, додавши вказану кількість для поповнення.
  • Застосуйте ту ж логіку до "Apples", використовуючи цикл while, щоб забезпечити відповідність мінімальному рівню запасів.
  • Після поповнення всіх товарів, пройдіться по словнику інвентарю та надрукуйте остаточні рівні запасів для кожного товару.

Вимоги до виводу

  • Для кожного товару, який поповнюється, надрукуйте повідомлення, що вказує на поточний рівень запасів і що поповнення відбувається. Наприклад: "<Item> stock is low: <$current_stock> units. Restocking...".
  • Після завершення всіх поповнень, надрукуйте остаточний стан інвентарю у форматі: "<Item>: <$current_stock> units (Minimum required: <$minimum_stock> units)".
  • Використовуйте f-рядки для форматування вихідних повідомлень, і обов'язково використовуйте одинарні лапки всередині рядків з подвійними лапками для ключів словника.
  • Вставте новий рядок перед друком остаточного стану інвентарю, використовуючи послідовність екранування \n.

Примітка

Код вводить нові способи форматування рядків для кращої читабельності:

  • Всередині f-рядків можна використовувати одинарні лапки ' всередині рядків з подвійними лапками. Наприклад: f"Запас хліба низький: {inventory['Bread'][0]} одиниць.". Зовнішній рядок використовує подвійні лапки, тоді як 'Bread' використовує одинарні лапки, щоб уникнути конфліктів.
  • Ви можете вставити новий рядок у вивід, використовуючи послідовність екранування \n, як "Перша лінія.\nДруга лінія.", що розділить вивід на два рядки.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 2
Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Ми дуже хвилюємося, що щось пішло не так. Що трапилося?
some-alt