在两个float参数的情况下,Python的内置pow(x, y)
(没有第三个参数)和返回的值返回的结果是否有差异.math.pow()
我问这个问题,因为文件的math.pow()
暗示pow(x, y)
(例如x**y
)在本质上是一样的math.pow(x, y)
:
math.pow(x,y)
返回x上升到幂y.特殊情况尽可能遵循C99标准的附录'F'.特别是,即使x为零或NaN,pow(1.0,x)和pow(x,0.0)也总是返回1.0.如果x和y都是有限的,x是负的,y不是整数,则pow(x,y)是未定义的,并引发ValueError.
在版本2.6中更改:1**nan和nan**0的结果未定义.
注意最后一行:文档暗示行为math.pow()
是指数运算符**
(因此pow(x, y)
)的行为.这是官方保证吗?
背景:我的目标是提供一个实现这两个内置的pow()
和math.pow()
对不确定性的数字,在以同样的方式表现与常规的Python花车(相同的数值结果,同样的例外,拐角情况相同的结果,等等).我已经已经实现的东西,工作得很好,但也有一些角落情况下,需要进行处理.
哪一个使用math.pow或**运算符更有效?我什么时候应该使用另一个?
到目前为止我知道x**y
可以返回一个int
或者float
如果你使用十进制函数pow
将返回一个浮点数
import math
print math.pow(10, 2)
print 10. ** 2
Run Code Online (Sandbox Code Playgroud)