Есть функция def power(x, exp=2): return x ** exp. Что вернёт вызов power(3)?
AЧисло
5 при трактовке одиночного аргумента как суммы x + exp равной 3 + 2BЧисло
27 при возведении значения по умолчанию exp в куб самой функциейCЧисло
9 при подстановке значения по умолчанию exp = 2 в выражение 3 ** 2DОшибка
TypeError: функция требует обязательной передачи обоих аргументовПравильный ответ. Если аргумент со значением по умолчанию не передан, используется значение по умолчанию.
Разбор
Параметр exp=2 означает, что если exp не указан при вызове, он равен 2. Поэтому power(3) вычисляет 3 ** 2 и возвращает 9. Значения по умолчанию помогают делать вызов функции удобнее: чаще всего используемый сценарий получается короче. Ошибка TypeError возникла бы, только если бы у exp не было дефолта.
Проверь себя · 1/3разбор после ответа
Дан код:
x = 10 на верхнем уровне модуля и def inc(): return x + 1. Что вернёт вызов inc()?Ещё вопросы по теме «Функции и аргументы»
- Есть функция `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 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`. Какой вызов не выполнится из-за позиции аргументов (позиционный после именованного)?
- Все вопросы по «Функции и аргументы» →