Дана функция 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)?Ещё вопросы по теме «Функции и аргументы»
- Есть функция `def add(x, y): return x + y`. Что вернет вызов `add(2, 3)`?
- Дана функция `def f(a, b, c): return a * 100 + b * 10 + c`. Что вернёт вызов `f(1, c=3, b=2)`?
- Есть функция `def power(x, exp=2): return x ** exp`. Что вернёт вызов `power(3)`?
- Дан код: `x = 10` на верхнем уровне модуля и `def inc(): return x + 1`. Что вернёт вызов `inc()`?
- Есть функция `def f(a, b, c): return a + b + c`. Какой вызов не выполнится из-за позиции аргументов (позиционный после именованного)?
- Все вопросы по «Функции и аргументы» →