Дана функция def total(*args): return sum(args). Что вернёт вызов total(1, 2, 3)?

AЧисло 3: *args собирает только последний переданный аргумент в одну переменную
BКортеж (1, 2, 3): функция вернёт сам кортеж аргументов без вызова sum() над ним
CСписок [1, 2, 3]: *args создаёт список и sum() отдаёт его без изменений
DЧисло 6: *args собирает аргументы в кортеж (1, 2, 3), и sum() суммирует их
Правильный ответ. *args собирает позиционные аргументы в кортеж, а sum(args) суммирует их.

Разбор

Параметр *args означает «собери все позиционные аргументы в одну переменную args», и внутри функции это будет кортеж (1, 2, 3). Затем sum(args) возвращает сумму элементов кортежа, то есть 6. Такой приём удобен, когда заранее не известно, сколько значений передадут в функцию.

Проверь себя · 1/3разбор после ответа
Дана функция def f(a, b, c): return a * 100 + b * 10 + c. Что вернёт вызов f(1, c=3, b=2)?
Тренировать Python в Telegram

Ещё вопросы по теме «Функции и аргументы»