Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Поєднання Позиційних та Іменованих Довільних Аргументів | Довільні Аргументи
Підручник з Функцій Python

bookПоєднання Позиційних та Іменованих Довільних Аргументів

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

12345678910111213141516171819202122232425
def calculate_total_cost(*prices, **settings): subtotal = sum(prices) discount = settings.get("discount", 0) tax = settings.get("tax", 0) discount_amount = subtotal * (discount / 100) taxed_amount = (subtotal - discount_amount) * (1 + tax / 100) print(f"Subtotal: ${subtotal:.2f}") if discount > 0: print(f"Discount: {discount}% (-${discount_amount:.2f})") else: print("No discount applied.") if tax > 0: print(f"Tax: {tax}% (+${taxed_amount - (subtotal - discount_amount):.2f})") print(f"Final total: ${taxed_amount:.2f}") print() # Examples of using the function calculate_total_cost(1000, 250, 50) calculate_total_cost(1200, 800, discount=10) calculate_total_cost(500, 750, 250, discount=5, tax=8)
copy

Правила комбінування довільних аргументів

Позиційні довільні аргументи (*args)

*args збирає всі додаткові позиційні аргументи у кортеж. У цьому прикладі функція може приймати будь-яку кількість цін товарів без необхідності явно їх визначати.

Наприклад:

calculate_total_cost(500, 250, 100)

Тут *prices стає (500, 250, 100).

Довільні іменовані аргументи (**kwargs)

**kwargs збирає всі іменовані (ключові) аргументи у словник. Це дозволяє функції приймати додаткові іменовані параметри, такі як discount або tax, навіть якщо вони не були визначені заздалегідь.

Наприклад:

calculate_total_cost(1000, 500, discount=10, tax=5)

Тут **settings стає {'discount': 10, 'tax': 5}.

Комбінування обох варіантів

Можна використовувати одночасно і *args, і **kwargs в одній функції для досягнення максимальної гнучкості — це дозволяє обробляти будь-яку кількість позиційних значень та будь-яку комбінацію іменованих параметрів.

question mark

Що таке комбінація позиційних та іменованих довільних аргументів у функціях?

Select the correct answer

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

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

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

Секція 3. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Suggested prompts:

Can you explain how the function handles both discounts and taxes together?

What happens if I don't provide any keyword arguments?

Can you show more examples of calling this function with different arguments?

Awesome!

Completion rate improved to 4.17

bookПоєднання Позиційних та Іменованих Довільних Аргументів

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

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

12345678910111213141516171819202122232425
def calculate_total_cost(*prices, **settings): subtotal = sum(prices) discount = settings.get("discount", 0) tax = settings.get("tax", 0) discount_amount = subtotal * (discount / 100) taxed_amount = (subtotal - discount_amount) * (1 + tax / 100) print(f"Subtotal: ${subtotal:.2f}") if discount > 0: print(f"Discount: {discount}% (-${discount_amount:.2f})") else: print("No discount applied.") if tax > 0: print(f"Tax: {tax}% (+${taxed_amount - (subtotal - discount_amount):.2f})") print(f"Final total: ${taxed_amount:.2f}") print() # Examples of using the function calculate_total_cost(1000, 250, 50) calculate_total_cost(1200, 800, discount=10) calculate_total_cost(500, 750, 250, discount=5, tax=8)
copy

Правила комбінування довільних аргументів

Позиційні довільні аргументи (*args)

*args збирає всі додаткові позиційні аргументи у кортеж. У цьому прикладі функція може приймати будь-яку кількість цін товарів без необхідності явно їх визначати.

Наприклад:

calculate_total_cost(500, 250, 100)

Тут *prices стає (500, 250, 100).

Довільні іменовані аргументи (**kwargs)

**kwargs збирає всі іменовані (ключові) аргументи у словник. Це дозволяє функції приймати додаткові іменовані параметри, такі як discount або tax, навіть якщо вони не були визначені заздалегідь.

Наприклад:

calculate_total_cost(1000, 500, discount=10, tax=5)

Тут **settings стає {'discount': 10, 'tax': 5}.

Комбінування обох варіантів

Можна використовувати одночасно і *args, і **kwargs в одній функції для досягнення максимальної гнучкості — це дозволяє обробляти будь-яку кількість позиційних значень та будь-яку комбінацію іменованих параметрів.

question mark

Що таке комбінація позиційних та іменованих довільних аргументів у функціях?

Select the correct answer

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

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

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

Секція 3. Розділ 3
some-alt