Разница между встроенным -в pow ()и math.pow ()для чисел с плавающей запятой в Python?

Есть ли разница в результатах, возвращаемых встроенной Python -вpow(x, y)(без третьего аргумента )и значениями, возвращаемыми math.pow(), в случае двух float аргументы.

Я задаю этот вопрос, потому что документация для math.pow()подразумевает, чтоpow(x, y)(т. е.x**y)по существу совпадает сmath.pow(x, y):

math.pow (x, y)

Верните x, возведенное в степень y. Исключительные случаи насколько это возможно, следуйте приложению «F» стандарта C99. В в частности, pow (1.0, x )и pow (x, 0.0 )всегда возвращают 1.0, даже если x является нулем или NaN. Если и x, и y конечны, x отрицательно и y не является целым числом, то pow (x, y )не определено и вызывает ValueError.

Изменено в версии 2.6. :Результат 1 **nan и nan **0 не определен.

Обратите внимание на последнюю строку :в документации подразумевается, что поведение math.pow()является поведением оператора возведения в степень**(и, следовательно,pow(x, y)). Это официально гарантировано?

Исходная информация :Моя цель состоит в том, чтобы предоставить реализацию как встроенного -в pow(), так и math.pow()для чисел с неопределенностью , которая ведет себя одинаково как и с обычными плавающими числами Python (те же числовые результаты, те же исключения, те же результаты для крайних случаев и т. д. ). Я уже реализовал то, что работает довольно хорошо, но есть некоторые крайние случаи , которые необходимо обработать.

62
задан Community 23 May 2017 в 12:18
поделиться