Цикли For
Ласкаво просимо до розділу, присвяченого циклам!
У цьому розділі ми зануримося в те, як цикли служать ключовим інструментом для автоматизації повторюваних завдань і є необхідними для ефективної обробки списків та інших ітерабельних типів даних.
Приєднуйтесь до Алекса, який демонструє використання циклів for
для спрощення операцій у нашому продуктовому магазині:
Використання циклів for
у Python дозволяє виконувати блок коду повторно для кожного елемента в колекції (ітерабельному об'єкті). Ось що вам потрібно знати про цикли for
:
Синтаксис
Ініціюйте цикл for
за допомогою ключового слова for
, за яким слідує ім'я змінної, наприклад, item
, щоб представляти кожен елемент у послідовності. Потім слідує ключове слово in
і ітерабельний об'єкт, наприклад, groceryItems
. Блок коду в циклі виконується один раз для кожного елемента.
У цьому прикладі item
діє як змінна-ітератор, яка послідовно отримує доступ до кожного елемента в списку groceryItems
і виконує функцію print()
для кожного з них:
1234groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
Ітерація відноситься до процесу виконання блоку коду повторно. Python підтримує два основні типи ітерації:
Визначена ітерація
Коли кількість ітерацій відомо заздалегідь. for
цикли є класичним прикладом, автоматично зупиняючись коли досягають кінця послідовності.
Невизначена ітерація
В якій виконання триває поки не буде виконано певну умову, зазвичай обробляється while
циклами, які будуть детально розглянуті в наступному розділі.
Приклад застосувань
for
цикли в Python можуть використовуватися з будь-яким ітерованим об'єктом (lists
, tuples
, dictionaries
, strings
), дозволяючи маніпулювати даними на основі кожного елемента.
Чи потрібно вам отримати доступ до елементів у списку, ключів або значень у словнику, або символів у рядку, for
цикли надають чіткий синтаксис, що спрощує код для повторюваних завдань.
Ось як ви можете використовувати for
цикл для ітерації по елементах у рядку та кортежі, подібно до того, як ми бачили зі списками:
123456789# Print each letter in the string vegetable = "Carrot" for letter in vegetable: print(letter) # Tuple containing different categories of the grocery store categories = ("Produce", "Bakery", "Meat", "Dairy") for category in categories: print(category)
При використанні циклу for
з словником, ітерація безпосередньо по словнику за замовчуванням буде проходити по його ключах.
Ось чого очікувати, коли ви безпосередньо ітеруєте по словнику:
1234567# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary key print("Product list:") for product in productStock: print(product)
Зверніть увагу, як змінна ітератора product
отримує доступ лише до ключів словника.
Щоб ітерувати по значеннях словника, ви можете використовувати метод values()
.
Це корисно для операцій, які потребують доступу до значень без необхідності звертатися до ключів:
1234567# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary value print("Stock counts:") for stock in productStock.values(): print(stock)
Якщо вам потрібно одночасно отримати доступ до ключів і значень, метод items()
дозволяє перебирати пари ключ-значення в словнику.
Щоб використовувати цей метод у циклі for
, ми вказуємо дві змінні перед ключовим словом in
— одну для ключа (product
) і одну для значення (stock
):
1234567# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print both the key and value for each dictionary item print("Inventory details:") for product, stock in productStock.items(): print(f"{product} has {stock} units in stock.")
Примітка
У цьому прикладі ми використовуємо f-рядки (також відомі як форматовані рядкові літерали) для вбудовування змінних безпосередньо в рядки. Синтаксис простий: додайте
f
перед відкриваючою лапкою"
, і розмістіть змінні або вирази у фігурних дужках{}
всередині рядка. Цей метод робить об'єднання рядків і змінних у операторах print набагато читабельнішим, тому варто його вивчити.
Спираючись на ваші знання про if/else
, булеві оператори та цикли for
, ми можемо виконати просту перевірку інвентаризації у словнику:
123456789101112131415161718# Product names as keys and their stock levels as values inventory = { "milk": 120, "eggs": 30, "bread": 80, "apples": 10 } # The threshold stock level that triggers a restock minimum_stock = 50 # Evaluating stock levels and deciding if restocking is necessary print("Checking inventory status:") for product, quantity in inventory.items(): if quantity < minimum_stock: print(f"{product} requires restocking. Only {quantity} units remain.") else: print(f"{product} has adequate stock with {quantity} units available.")
Примітка
Ви можете помітити, що ми розмістили
if
оператори всередині циклуfor
, що додало додатковий відступ до блокуif
. Як згадувалося раніше, кожен відступлений блок коду може розглядатися як незалежний, незалежно від того, де він розміщений. Головне - забезпечити, щоб відступ був послідовним і правильним між ними.
Swipe to start coding
У цьому завданні ви відповідаєте за управління запасами та акціями для продуктового магазину. Ваша мета - перебрати інвентар, перевірити, чи потребує якийсь продукт поповнення, і застосувати акції, якщо вони існують.
Інструкції до коду
- Переберіть елементи у словнику
inventory
. - Всередині циклу отримайте поточний запас та мінімальний запас для кожного продукту зі списку інвентарю.
- Напишіть оператор
if
, який перевіряє, чи поточний запас менше або дорівнює мінімальному запасу, викликаючи повідомлення про поповнення. - Коли умова поповнення виконується, збільшіть поточний запас на
20
одиниць і оновіть інвентар. - Завершіть умову
if
, щоб перевірити, чи є у продукту акція, перевіривши, чи існує вона у словникуpromotions
.
Вимоги до виводу
- Для кожного продукту виведіть повідомлення у форматі:
--- Processing: <item> ---
. - Якщо продукт потребує поповнення, виведіть:
<item> needs restocking. Current stock: <current_stock>. Minimum required: <min_stock>
. - Після поповнення виведіть оновлений рівень запасів:
Updated stock for <item>: <updated_stock>
. - Якщо для продукту існує акція, виведіть:
Promotion for <item>: <promotion_details>
. - Якщо акцій немає, виведіть:
No promotions for <item>
.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 2.17
Цикли For
Свайпніть щоб показати меню
Ласкаво просимо до розділу, присвяченого циклам!
У цьому розділі ми зануримося в те, як цикли служать ключовим інструментом для автоматизації повторюваних завдань і є необхідними для ефективної обробки списків та інших ітерабельних типів даних.
Приєднуйтесь до Алекса, який демонструє використання циклів for
для спрощення операцій у нашому продуктовому магазині:
Використання циклів for
у Python дозволяє виконувати блок коду повторно для кожного елемента в колекції (ітерабельному об'єкті). Ось що вам потрібно знати про цикли for
:
Синтаксис
Ініціюйте цикл for
за допомогою ключового слова for
, за яким слідує ім'я змінної, наприклад, item
, щоб представляти кожен елемент у послідовності. Потім слідує ключове слово in
і ітерабельний об'єкт, наприклад, groceryItems
. Блок коду в циклі виконується один раз для кожного елемента.
У цьому прикладі item
діє як змінна-ітератор, яка послідовно отримує доступ до кожного елемента в списку groceryItems
і виконує функцію print()
для кожного з них:
1234groceryItems = ["milk", "eggs", "cheese", "butter"] for item in groceryItems: # Code to be executed print(item)
Ітерація відноситься до процесу виконання блоку коду повторно. Python підтримує два основні типи ітерації:
Визначена ітерація
Коли кількість ітерацій відомо заздалегідь. for
цикли є класичним прикладом, автоматично зупиняючись коли досягають кінця послідовності.
Невизначена ітерація
В якій виконання триває поки не буде виконано певну умову, зазвичай обробляється while
циклами, які будуть детально розглянуті в наступному розділі.
Приклад застосувань
for
цикли в Python можуть використовуватися з будь-яким ітерованим об'єктом (lists
, tuples
, dictionaries
, strings
), дозволяючи маніпулювати даними на основі кожного елемента.
Чи потрібно вам отримати доступ до елементів у списку, ключів або значень у словнику, або символів у рядку, for
цикли надають чіткий синтаксис, що спрощує код для повторюваних завдань.
Ось як ви можете використовувати for
цикл для ітерації по елементах у рядку та кортежі, подібно до того, як ми бачили зі списками:
123456789# Print each letter in the string vegetable = "Carrot" for letter in vegetable: print(letter) # Tuple containing different categories of the grocery store categories = ("Produce", "Bakery", "Meat", "Dairy") for category in categories: print(category)
При використанні циклу for
з словником, ітерація безпосередньо по словнику за замовчуванням буде проходити по його ключах.
Ось чого очікувати, коли ви безпосередньо ітеруєте по словнику:
1234567# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary key print("Product list:") for product in productStock: print(product)
Зверніть увагу, як змінна ітератора product
отримує доступ лише до ключів словника.
Щоб ітерувати по значеннях словника, ви можете використовувати метод values()
.
Це корисно для операцій, які потребують доступу до значень без необхідності звертатися до ключів:
1234567# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print each dictionary value print("Stock counts:") for stock in productStock.values(): print(stock)
Якщо вам потрібно одночасно отримати доступ до ключів і значень, метод items()
дозволяє перебирати пари ключ-значення в словнику.
Щоб використовувати цей метод у циклі for
, ми вказуємо дві змінні перед ключовим словом in
— одну для ключа (product
) і одну для значення (stock
):
1234567# Dictionary of products and their stock counts productStock = {"milk": 120, "eggs": 200, "bread": 80} # Print both the key and value for each dictionary item print("Inventory details:") for product, stock in productStock.items(): print(f"{product} has {stock} units in stock.")
Примітка
У цьому прикладі ми використовуємо f-рядки (також відомі як форматовані рядкові літерали) для вбудовування змінних безпосередньо в рядки. Синтаксис простий: додайте
f
перед відкриваючою лапкою"
, і розмістіть змінні або вирази у фігурних дужках{}
всередині рядка. Цей метод робить об'єднання рядків і змінних у операторах print набагато читабельнішим, тому варто його вивчити.
Спираючись на ваші знання про if/else
, булеві оператори та цикли for
, ми можемо виконати просту перевірку інвентаризації у словнику:
123456789101112131415161718# Product names as keys and their stock levels as values inventory = { "milk": 120, "eggs": 30, "bread": 80, "apples": 10 } # The threshold stock level that triggers a restock minimum_stock = 50 # Evaluating stock levels and deciding if restocking is necessary print("Checking inventory status:") for product, quantity in inventory.items(): if quantity < minimum_stock: print(f"{product} requires restocking. Only {quantity} units remain.") else: print(f"{product} has adequate stock with {quantity} units available.")
Примітка
Ви можете помітити, що ми розмістили
if
оператори всередині циклуfor
, що додало додатковий відступ до блокуif
. Як згадувалося раніше, кожен відступлений блок коду може розглядатися як незалежний, незалежно від того, де він розміщений. Головне - забезпечити, щоб відступ був послідовним і правильним між ними.
Swipe to start coding
У цьому завданні ви відповідаєте за управління запасами та акціями для продуктового магазину. Ваша мета - перебрати інвентар, перевірити, чи потребує якийсь продукт поповнення, і застосувати акції, якщо вони існують.
Інструкції до коду
- Переберіть елементи у словнику
inventory
. - Всередині циклу отримайте поточний запас та мінімальний запас для кожного продукту зі списку інвентарю.
- Напишіть оператор
if
, який перевіряє, чи поточний запас менше або дорівнює мінімальному запасу, викликаючи повідомлення про поповнення. - Коли умова поповнення виконується, збільшіть поточний запас на
20
одиниць і оновіть інвентар. - Завершіть умову
if
, щоб перевірити, чи є у продукту акція, перевіривши, чи існує вона у словникуpromotions
.
Вимоги до виводу
- Для кожного продукту виведіть повідомлення у форматі:
--- Processing: <item> ---
. - Якщо продукт потребує поповнення, виведіть:
<item> needs restocking. Current stock: <current_stock>. Minimum required: <min_stock>
. - Після поповнення виведіть оновлений рівень запасів:
Updated stock for <item>: <updated_stock>
. - Якщо для продукту існує акція, виведіть:
Promotion for <item>: <promotion_details>
. - Якщо акцій немає, виведіть:
No promotions for <item>
.
Рішення
Дякуємо за ваш відгук!
Awesome!
Completion rate improved to 2.17single