single
Довільні позиційні аргументи
Свайпніть щоб показати меню
Ви вже знаєте про позиційні та необов'язкові аргументи. Але коли функція може отримувати багато вхідних даних або їх кількість невідома заздалегідь, можна використовувати довільні позиційні аргументи. Вони дозволяють функції приймати будь-яку кількість значень.
Кожен аргумент може бути будь-якою структурою даних (list, dict тощо). Довільні аргументи дозволяють передавати стільки таких об'єктів, скільки потрібно.
Щоб визначити довільні позиційні аргументи, поставте зірочку * перед іменем параметра. Приклад:
12345678# Define function with arbitrary positional 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))
Тут *values збирає всі передані позиційні аргументи у кортеж. Усередині функції використовується ім'я змінної без *. Результат буде коректним незалежно від кількості переданих аргументів.
Хоча можна використовувати будь-яке ім'я, загальноприйнята та зрозуміла форма — *args.
1234567891011121314def example_function(*args): print(type(args)) print(args) for arg in args: print(arg) print("Call without arguments:") example_function() print("\nCall with one argument:") example_function(1) print("\nCall with multiple arguments:") example_function(1, 2, 3, 'hello', [4, 5, 6])
Як показано:
- Без аргументів →
args— це(); - Один аргумент →
(1,); - Декілька аргументів → всі значення містяться у кортежі, наприклад,
(1, 2, 3, 'hello', [4, 5, 6]).
*args поводиться як звичайний кортеж, що дає повну гнучкість при обробці багатьох вхідних даних.
Оскільки *args — це просто кортеж, можна застосовувати будь-яку логіку до його значень, включаючи умовні оператори. Наприклад, після підрахунку суми всіх цін можна перевірити загальну суму й застосувати різні правила залежно від результату.
Проведіть, щоб почати кодувати
Реалізуйте функцію calculate_total, яка обчислює загальну вартість товарів у кошику, застосовуючи знижки залежно від загальної суми.
- Використайте довільну кількість позиційних аргументів з назвою prices у функції
calculate_total. - Якщо аргументи не передані, поверніть
"Your cart is empty.". - Знижки взаємовиключні – застосовується лише найбільша з можливих:
- Застосуйте знижку 20%, якщо сума $200 або більше.
- Застосуйте знижку 10%, якщо сума $100 або більше.
- В інших випадках знижка не застосовується.
- Поверніть фінальну суму у форматованому рядку:
"Final total: $X.XX".
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат