Дана функция 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. Такой приём удобен, когда заранее не известно, сколько значений передадут в функцию.

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Продолжить в браузере

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