Дана функция def f(a, b, c): return a * 100 + b * 10 + c. Что вернет вызов f(1, c=3, b=2)?
A132
B123
C
TypeErrorD321
Правильный ответ. Позиционные аргументы заполняют параметры слева направо, именованные можно указывать в любом порядке по имени.
Разбор
В вызове f(1, c=3, b=2) значение 1 идет в параметр a (позиционно). Параметры b и c задаются именованно, поэтому порядок b=2 и c=3 не важен. В итоге считается 1 * 100 + 2 * 10 + 3, то есть 123. Это частый стиль: обязательные параметры передают позиционно, а уточняющие — ключевыми аргументами.
Проверь себя · 1/3разбор после ответа
Есть функция
def power(x, exp=2): return x ** exp. Что вернет вызов power(3)?Ещё вопросы по теме «Функции и аргументы»
- Есть функция `def add(x, y): return x + y`. Что вернет вызов `add(2, 3)`?
- Есть функция `def power(x, exp=2): return x ** exp`. Что вернет вызов `power(3)`?
- Дана функция `def total(*args): return sum(args)`. Что вернет вызов `total(1, 2, 3)`?
- Дан код: `x = 10; def inc(): return x + 1`. Что вернёт вызов `inc()`?
- Есть функция `def f(a, b, c): return a + b + c`. Какой вызов не выполнится из-за позиции аргументов (позиционный после именованного)?
- Все вопросы по «Функции и аргументы» →