Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Поведінка списків у функціях | Функції
Вступ до Python
course content

Зміст курсу

Вступ до Python

Вступ до Python

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

book
Поведінка списків у функціях

Давайте дослідимо роботу зі списками всередині функцій. Хоча це схоже на роботу з числами, є кілька важливих деталей, які слід враховувати.

Списки є змінними, тобто будь-які зміни, внесені до списку всередині функції, також вплинуть на оригінальний список за межами функції, якщо він переданий безпосередньо.

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

1234567891011121314
def add_strawberry(original_list): list_copy = original_list.copy() # Create a copy of the original list list_copy.append("Strawberry") # Modify the copied list return list_copy # Original list fruits = ["Apple", "Banana", "Cherry"] # Call the function new_fruits = add_strawberry(fruits) # Check the results print("Original list:", fruits) # ['Apple', 'Banana', 'Cherry'] print("Modified list:", new_fruits) # ['Apple', 'Banana', 'Cherry', 'Strawberry']
copy

У цьому прикладі оригінальний список fruits залишається незмінним, оскільки було використано copy(). Без copy() зміна списку всередині функції також змінила б оригінальний список fruits.

Завдання

Swipe to start coding

У цьому завданні ви будете працювати зі списком цін на продукти з продуктового магазину. Ваше завдання - створити функцію, яка застосовує знижку 10% до кожного продукту, ціна якого перевищує $2.00, при цьому оригінальний список залишається незмінним. Ця вправа допоможе вам практикувати використання функцій, циклів та маніпуляції зі списками в Python.

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

  • Визначте функцію з назвою apply_discount(prices), яка приймає список цін як аргумент.
  • Всередині функції створіть копію списку prices, щоб оригінальний список залишався незмінним. Призначте копію змінній prices_copy.
  • Використовуйте цикл for для ітерації через копію списку за індексами.
  • У межах циклу перевірте, чи перевищує кожна ціна $2.00. Якщо так, застосуйте знижку 10% до цієї ціни.
  • Поверніть оновлену версію копії списку після застосування знижок.

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

  • Функція повинна повертати новий список з цінами зі знижкою.
  • Виведіть оновлений список цін у форматі: Updated product prices: <$updated_prices>.

Примітка

Важливо ітерувати через список за допомогою індексів (for index in range(len(prices)):), а не значень (for price in prices:), оскільки останній лише змінює копії значень, залишаючи оригінальний список незмінним.

Рішення

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

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

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

Секція 6. Розділ 4
toggle bottom row

book
Поведінка списків у функціях

Давайте дослідимо роботу зі списками всередині функцій. Хоча це схоже на роботу з числами, є кілька важливих деталей, які слід враховувати.

Списки є змінними, тобто будь-які зміни, внесені до списку всередині функції, також вплинуть на оригінальний список за межами функції, якщо він переданий безпосередньо.

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

1234567891011121314
def add_strawberry(original_list): list_copy = original_list.copy() # Create a copy of the original list list_copy.append("Strawberry") # Modify the copied list return list_copy # Original list fruits = ["Apple", "Banana", "Cherry"] # Call the function new_fruits = add_strawberry(fruits) # Check the results print("Original list:", fruits) # ['Apple', 'Banana', 'Cherry'] print("Modified list:", new_fruits) # ['Apple', 'Banana', 'Cherry', 'Strawberry']
copy

У цьому прикладі оригінальний список fruits залишається незмінним, оскільки було використано copy(). Без copy() зміна списку всередині функції також змінила б оригінальний список fruits.

Завдання

Swipe to start coding

У цьому завданні ви будете працювати зі списком цін на продукти з продуктового магазину. Ваше завдання - створити функцію, яка застосовує знижку 10% до кожного продукту, ціна якого перевищує $2.00, при цьому оригінальний список залишається незмінним. Ця вправа допоможе вам практикувати використання функцій, циклів та маніпуляції зі списками в Python.

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

  • Визначте функцію з назвою apply_discount(prices), яка приймає список цін як аргумент.
  • Всередині функції створіть копію списку prices, щоб оригінальний список залишався незмінним. Призначте копію змінній prices_copy.
  • Використовуйте цикл for для ітерації через копію списку за індексами.
  • У межах циклу перевірте, чи перевищує кожна ціна $2.00. Якщо так, застосуйте знижку 10% до цієї ціни.
  • Поверніть оновлену версію копії списку після застосування знижок.

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

  • Функція повинна повертати новий список з цінами зі знижкою.
  • Виведіть оновлений список цін у форматі: Updated product prices: <$updated_prices>.

Примітка

Важливо ітерувати через список за допомогою індексів (for index in range(len(prices)):), а не значень (for price in prices:), оскільки останній лише змінює копії значень, залишаючи оригінальний список незмінним.

Рішення

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

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

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

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