2013-03-19 79 views
-1

要在Python中计算指数,我们使用**命令。例如,我们为x的立方体输入x**3。 Python如何评估这些多项式?这个计算中使用了3次触发器吗?那么非整数指数呢?说x**2.3Python如何计算指数?

+0

可能重复的[指数是如何计算的?](http://stackoverflow.com/questions/164964/how-are-exponents-calculated) – 2013-03-19 14:45:11

+0

'x ** 3'只是2个操作('t = x * x; t = t * x') – chepner 2013-03-19 14:50:44

回答

8

**运算符转换为字节码中的BINARY_POWER操作码,然后解释器转换为C-API PyNumber_Power call并将第三个参数设置为无。

PyNumber_Power在操作数上调用nb_power slot(请参阅ternary_op)。

如果两者都是整数,则int_pow C function成功并使用其结果。

但是,如果x是一个整数,并且您使用2.3作为功率,则整数幂函数会产生错误,接下来会尝试float_pow。在这种情况下,如果x大于0,则C函数库pow()函数用于两个浮点值,在大多数体系结构上,该值都由CPU中的浮点支持处理。