Вычисление степени числа (вариант 2)

Верните base ** exponent: оператор поддерживает положительные, нулевые и отрицательные целые степени. Для нулевого основания с отрицательной степенью возникает ZeroDivisionError.

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

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

Верните base ** exponent: оператор поддерживает положительные, нулевые и отрицательные целые степени. Для нулевого основания с отрицательной степенью возникает ZeroDivisionError.

Подробный разбор

Ответ с пояснениями

Условие

Необходимо написать функцию power(base, exponent), которая возвращает значение base, возведённого в степень exponent.

base — число с плавающей запятой (float) exponent — целое число (int)

Функция должна корректно работать как при положительных, так и при отрицательных значениях exponent.

Ответ

Верните base ** exponent: оператор поддерживает положительные, нулевые и отрицательные целые степени. Для нулевого основания с отрицательной степенью возникает ZeroDivisionError.

Реализация:

def power(base: float, exponent: int) -> float:
    if type(exponent) is not int:
        raise TypeError('Expected integer exponent')
    return base ** exponent

power(2.0, 3) даёт 8.0, power(2.0, -3) — 0.125, любая конечная ненулевая база в степени 0 — 1.0. Аннотация base сама не приводит вход к float. Для очень больших степеней возможны переполнение или потеря точности; отрицательное основание с целой степенью не требует комплексного результата.

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

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

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

Подробнее