Верните base ** exponent: оператор поддерживает положительные, нулевые и отрицательные целые степени. Для нулевого основания с отрицательной степенью возникает ZeroDivisionError.
Вычисление степени числа (вариант 2)
Верните 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. Для очень больших степеней возможны переполнение или потеря точности; отрицательное основание с целой степенью не требует комплексного результата.