Возведение числа в степень – задача 1

Для неотрицательного целого показателя достаточно return num ** pow_. Если допускаются отрицательные степени, результат может быть float, поэтому возвращаемый тип int уже не соответствует контракту.

Короткий ответ

Что ответить на собеседовании

Для неотрицательного целого показателя достаточно 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. Если отрицательные степени нужны, уберите соответствующий запрет, измените тип результата и учтите ошибку для нулевого основания с отрицательной степенью.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее