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

bookДовільні Аргументи

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

Note
Примітка

Пам'ятайте, що кожен аргумент може бути структурою даних, наприклад, списком або словником. Ви можете передавати довільну кількість таких структур за допомогою довільних аргументів.

У Python можна визначити довільні аргументи як один позиційний аргумент, додавши зірочку * перед іменем аргументу. Ось приклад:

12345678
# Define function with arbitrary arguments named values def calculate_sum(*values): return sum(values) # Test the function using different number of arguments print(calculate_sum(1, 2, 3)) print(calculate_sum(1, 2, 3, 4)) print(calculate_sum(1, 2, 3, 4, 5))
copy

У наведеному вище коді ми використали *, щоб оголосити, що змінна values містить кілька довільних аргументів і інтерпретується як кортеж. Далі ми використали вбудовану функцію sum для обчислення суми. Можна побачити, що результат є коректним для всіх прикладів, і нам не потрібно явно вказувати кількість аргументів. Зверніть увагу, що в тілі функції цей аргумент використовується за ім'ям без *.

Note
Примітка

Для визначення кортежу довільних аргументів достатньо використати * перед іменем аргументу. Однак рекомендується використовувати конструкцію *args. Це покращує зрозумілість і читабельність коду.

123456789101112131415161718
def example_function(*args): # Print the type of args print(f'Type of args: {type(args)}') # Print the whole tuple print(f'Args tuple: {args}') # Iterate over the tuple for arg in args: print(arg) # Call the function without any arguments print("Call without arguments:") example_function() # Call the function with one argument print("\nCall with one argument:") example_function(1) # Call the function with multiple arguments print("\nCall with multiple arguments:") example_function(1, 2, 3, 'hello', [4, 5, 6])
copy

Як видно з результатів:

  • Коли функцію викликають без аргументів, args буде порожнім кортежем ().
  • Коли функцію викликають з одним аргументом, args буде кортежем з одним елементом (1,).
  • Коли функцію викликають з кількома аргументами, всі вони зберігаються у кортежі, наприклад (1, 2, 3, 'hello', [4, 5, 6]).

Завдяки *args можна працювати з переданими значеннями так само, як і з будь-яким іншим кортежем у Python.

Завдання

Swipe to start coding

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

  1. Використати довільну кількість аргументів з іменем prices у функції calculate_total.
  2. Якщо аргументи не передані, повернути "Your cart is empty.".
  3. Застосувати знижку 20%, якщо сума становить $200 або більше.
  4. Застосувати знижку 10%, якщо сума становить $100 або більше.

Рішення

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

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

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

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

single

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Suggested prompts:

Can you explain the difference between *args and **kwargs?

How do I use *args with other types of function arguments?

Can you give more examples of when to use *args?

close

Awesome!

Completion rate improved to 4.35

bookДовільні Аргументи

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

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

Note
Примітка

Пам'ятайте, що кожен аргумент може бути структурою даних, наприклад, списком або словником. Ви можете передавати довільну кількість таких структур за допомогою довільних аргументів.

У Python можна визначити довільні аргументи як один позиційний аргумент, додавши зірочку * перед іменем аргументу. Ось приклад:

12345678
# Define function with arbitrary arguments named values def calculate_sum(*values): return sum(values) # Test the function using different number of arguments print(calculate_sum(1, 2, 3)) print(calculate_sum(1, 2, 3, 4)) print(calculate_sum(1, 2, 3, 4, 5))
copy

У наведеному вище коді ми використали *, щоб оголосити, що змінна values містить кілька довільних аргументів і інтерпретується як кортеж. Далі ми використали вбудовану функцію sum для обчислення суми. Можна побачити, що результат є коректним для всіх прикладів, і нам не потрібно явно вказувати кількість аргументів. Зверніть увагу, що в тілі функції цей аргумент використовується за ім'ям без *.

Note
Примітка

Для визначення кортежу довільних аргументів достатньо використати * перед іменем аргументу. Однак рекомендується використовувати конструкцію *args. Це покращує зрозумілість і читабельність коду.

123456789101112131415161718
def example_function(*args): # Print the type of args print(f'Type of args: {type(args)}') # Print the whole tuple print(f'Args tuple: {args}') # Iterate over the tuple for arg in args: print(arg) # Call the function without any arguments print("Call without arguments:") example_function() # Call the function with one argument print("\nCall with one argument:") example_function(1) # Call the function with multiple arguments print("\nCall with multiple arguments:") example_function(1, 2, 3, 'hello', [4, 5, 6])
copy

Як видно з результатів:

  • Коли функцію викликають без аргументів, args буде порожнім кортежем ().
  • Коли функцію викликають з одним аргументом, args буде кортежем з одним елементом (1,).
  • Коли функцію викликають з кількома аргументами, всі вони зберігаються у кортежі, наприклад (1, 2, 3, 'hello', [4, 5, 6]).

Завдяки *args можна працювати з переданими значеннями так само, як і з будь-яким іншим кортежем у Python.

Завдання

Swipe to start coding

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

  1. Використати довільну кількість аргументів з іменем prices у функції calculate_total.
  2. Якщо аргументи не передані, повернути "Your cart is empty.".
  3. Застосувати знижку 20%, якщо сума становить $200 або більше.
  4. Застосувати знижку 10%, якщо сума становить $100 або більше.

Рішення

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

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

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

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

single

some-alt