Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Ітерація за індексами | Цикли
Вступ до Python

bookІтерація за індексами

У попередньому завданні ви передавали певну кількість елементів у функцію range(). Але що робити, якщо потрібно визначити кількість елементів динамічно? Саме тут стає важливою ітерація за індексами.

Ітерація за індексами — це базова техніка в Python, яка дозволяє отримувати доступ і змінювати елементи за їхніми позиціями у структурах даних, таких як списки або масиви. Вона особливо корисна для завдань, які потребують точного контролю над кожним елементом, наприклад, оновлення рівнів запасів або керування даними про продажі у продуктовому магазині.

Перегляньте, як Олексій демонструє, як ітерація за індексами може спростити операції на прикладі нашого магазину:

Ітерація за індексами корисна, коли потрібно отримати доступ до обох — індексу та значення кожного елемента у списку. Коли ми використовуємо range() разом із len(), ми поєднуємо дві функції для створення послідовності чисел, що відповідають індексам елементів списку. Цей метод особливо зручний у циклах, де потрібно отримати доступ або змінити елементи за їхньою позицією.

Наприклад, цей цикл for отримує індекс і значення кожного елемента у grocery_list:

12345678
# List of grocery items grocery_list = ["Apples", "Bananas", "Carrots", "Cucumbers"] # Initialize a for loop to iterate over indexes for item in range(len(grocery_list)): print("Index:", item) print("Item:", grocery_list[item]) print("----") # Printing a divider line for clarity
copy

Приклад застосування

Щоб застосувати знижку до списку цін, необхідно змінювати елементи списку безпосередньо. Використання простого циклу, такого як for cost in prices:, надає лише копію кожного елемента, а не посилання на сам елемент у списку. Зміни, зроблені таким чином, не вплинуть на оригінальний список.

Щоб безпосередньо оновити кожен елемент у списку prices, використовують range(len(prices)) для ітерації за індексами. Це дозволяє застосувати коефіцієнт знижки до кожного елемента:

12345678910111213
# List of original prices of grocery items prices = [1.50, 2.00, 0.75, 3.25] # Discount factor (10% off each item) discount_factor = 0.10 # Iterate over the list of prices using range(len()) for cost in range(len(prices)): # Apply the discount by reducing the price prices[cost] -= prices[cost] * discount_factor print(f"New price of item {cost + 1}: ${prices[cost]}") print("Updated prices:", prices)
copy
Note
Примітка
  • Формула prices[cost] -= prices[cost] * discount_factor еквівалентна prices[cost] = prices[cost] - prices[cost] * discount_factor. Вона віднімає частину початкової ціни (визначену знижкою) від самої себе, фактично застосовуючи знижку;
  • Вираз cost + 1 у команді виводу коригує індекс так, щоб він починався з 1, а не з 0, що робить його зручнішим для користувача.

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

Завдання

Swipe to start coding

Знижка за позицією

Оновіть список prices, застосувавши різні відсотки знижки до кожного елемента залежно від його позиції у списку. Використовуйте ітерацію за індексами, щоб безпосередньо оновити оригінальний список prices.

  • Використайте цикл for з range() і len() для проходження по індексах списку prices;

  • Для кожного індексу застосуйте такі знижки та оновіть список:

    • Індекс 0: знижка 10% (помножити на 0.9);
    • Індекс 1: знижка 20% (помножити на 0.8);
    • Індекс 2: знижка 15% (помножити на 0.85);
    • Індекс 3: знижка 5% (помножити на 0.95);
  • Після оновлення кожної ціни виведіть рядок: Updated price for item {index}: ${updated_price:.2f};

  • Використовуйте .2f у вашому операторі print для форматування цін до 2 знаків після коми (наприклад, 5 стає 5.00).

  • Необхідно безпосередньо оновлювати список prices, а не просто виводити значення зі знижкою.

Рішення

Все було зрозуміло?

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

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

Секція 5. Розділ 6
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

close

bookІтерація за індексами

Свайпніть щоб показати меню

У попередньому завданні ви передавали певну кількість елементів у функцію range(). Але що робити, якщо потрібно визначити кількість елементів динамічно? Саме тут стає важливою ітерація за індексами.

Ітерація за індексами — це базова техніка в Python, яка дозволяє отримувати доступ і змінювати елементи за їхніми позиціями у структурах даних, таких як списки або масиви. Вона особливо корисна для завдань, які потребують точного контролю над кожним елементом, наприклад, оновлення рівнів запасів або керування даними про продажі у продуктовому магазині.

Перегляньте, як Олексій демонструє, як ітерація за індексами може спростити операції на прикладі нашого магазину:

Ітерація за індексами корисна, коли потрібно отримати доступ до обох — індексу та значення кожного елемента у списку. Коли ми використовуємо range() разом із len(), ми поєднуємо дві функції для створення послідовності чисел, що відповідають індексам елементів списку. Цей метод особливо зручний у циклах, де потрібно отримати доступ або змінити елементи за їхньою позицією.

Наприклад, цей цикл for отримує індекс і значення кожного елемента у grocery_list:

12345678
# List of grocery items grocery_list = ["Apples", "Bananas", "Carrots", "Cucumbers"] # Initialize a for loop to iterate over indexes for item in range(len(grocery_list)): print("Index:", item) print("Item:", grocery_list[item]) print("----") # Printing a divider line for clarity
copy

Приклад застосування

Щоб застосувати знижку до списку цін, необхідно змінювати елементи списку безпосередньо. Використання простого циклу, такого як for cost in prices:, надає лише копію кожного елемента, а не посилання на сам елемент у списку. Зміни, зроблені таким чином, не вплинуть на оригінальний список.

Щоб безпосередньо оновити кожен елемент у списку prices, використовують range(len(prices)) для ітерації за індексами. Це дозволяє застосувати коефіцієнт знижки до кожного елемента:

12345678910111213
# List of original prices of grocery items prices = [1.50, 2.00, 0.75, 3.25] # Discount factor (10% off each item) discount_factor = 0.10 # Iterate over the list of prices using range(len()) for cost in range(len(prices)): # Apply the discount by reducing the price prices[cost] -= prices[cost] * discount_factor print(f"New price of item {cost + 1}: ${prices[cost]}") print("Updated prices:", prices)
copy
Note
Примітка
  • Формула prices[cost] -= prices[cost] * discount_factor еквівалентна prices[cost] = prices[cost] - prices[cost] * discount_factor. Вона віднімає частину початкової ціни (визначену знижкою) від самої себе, фактично застосовуючи знижку;
  • Вираз cost + 1 у команді виводу коригує індекс так, щоб він починався з 1, а не з 0, що робить його зручнішим для користувача.

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

Завдання

Swipe to start coding

Знижка за позицією

Оновіть список prices, застосувавши різні відсотки знижки до кожного елемента залежно від його позиції у списку. Використовуйте ітерацію за індексами, щоб безпосередньо оновити оригінальний список prices.

  • Використайте цикл for з range() і len() для проходження по індексах списку prices;

  • Для кожного індексу застосуйте такі знижки та оновіть список:

    • Індекс 0: знижка 10% (помножити на 0.9);
    • Індекс 1: знижка 20% (помножити на 0.8);
    • Індекс 2: знижка 15% (помножити на 0.85);
    • Індекс 3: знижка 5% (помножити на 0.95);
  • Після оновлення кожної ціни виведіть рядок: Updated price for item {index}: ${updated_price:.2f};

  • Використовуйте .2f у вашому операторі print для форматування цін до 2 знаків після коми (наприклад, 5 стає 5.00).

  • Необхідно безпосередньо оновлювати список prices, а не просто виводити значення зі знижкою.

Рішення

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

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

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

Секція 5. Розділ 6
single

single

some-alt