Есть функция def power(x, exp=2): return x ** exp. Что вернёт вызов power(3)?

AЧисло 5 при трактовке одиночного аргумента как суммы x + exp равной 3 + 2
BЧисло 27 при возведении значения по умолчанию exp в куб самой функцией
CЧисло 9 при подстановке значения по умолчанию exp = 2 в выражение 3 ** 2
DОшибка TypeError: функция требует обязательной передачи обоих аргументов
Правильный ответ. Если аргумент со значением по умолчанию не передан, используется значение по умолчанию.

Разбор

Параметр exp=2 означает, что если exp не указан при вызове, он равен 2. Поэтому power(3) вычисляет 3 ** 2 и возвращает 9. Значения по умолчанию помогают делать вызов функции удобнее: чаще всего используемый сценарий получается короче. Ошибка TypeError возникла бы, только если бы у exp не было дефолта.

Проверь себя · 1/3разбор после ответа
Дан код: x = 10 на верхнем уровне модуля и def inc(): return x + 1. Что вернёт вызов inc()?
Тренировать Python в Telegram

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