Дана функция def f(a, b, c): return a * 100 + b * 10 + c. Что вернёт вызов f(1, c=3, b=2)?

AЧисло 132 при подстановке 1, 2, 3 справа налево по позициям сигнатуры
BЧисло 123 при подстановке 1 в a, а именованных b=2 и c=3 по именам
CTypeError при попытке смешать 1 позиционно и b=2 с c=3 по имени
DЧисло 321 при сборке цифр в обратном порядке параметров a, b, c
Правильный ответ. Позиционные аргументы заполняют параметры слева направо, именованные можно указывать в любом порядке по имени.

Разбор

В вызове f(1, c=3, b=2) значение 1 идёт в параметр a позиционно. Параметры b и c задаются именованно, поэтому их порядок не важен. В итоге считается 1 * 100 + 2 * 10 + 3, то есть 123. Смешивать позиционные и именованные аргументы можно — главное, чтобы позиционные шли первыми и не дублировались с именованными.

Проверь себя · 1/3разбор после ответа
Есть функция def power(x, exp=2): return x ** exp. Что вернёт вызов power(3)?
Тренировать Python в Telegram

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