Для неотрицательного целого показателя достаточно return num ** pow_. Если допускаются отрицательные степени, результат может быть float, поэтому возвращаемый тип int уже не соответствует контракту.
Возведение числа в степень – задача 1
Для неотрицательного целого показателя достаточно return num ** pow_. Если допускаются отрицательные степени, результат может быть float, поэтому возвращаемый тип int уже не соответствует контракту.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо реализовать функцию, принимающую два параметра — основание и показатель степени, и возвращающую результат возведения основания в указанную степень.
def power(num: int, pow_: int) -> int:
...
Ответ
Для неотрицательного целого показателя достаточно return num ** pow_. Если допускаются отрицательные степени, результат может быть float, поэтому возвращаемый тип int уже не соответствует контракту.
Вариант с сохранением заявленного результата int:
def power(num: int, pow_: int) -> int:
if type(num) is not int or type(pow_) is not int:
raise TypeError('Expected integers')
if pow_ < 0:
raise ValueError('Expected non-negative exponent')
return num ** pow_
power(2, 3) возвращает 8, power(5, 0) — 1. Python также определяет 0 ** 0 как 1. Если отрицательные степени нужны, уберите соответствующий запрет, измените тип результата и учтите ошибку для нулевого основания с отрицательной степенью.