Python是如何计算指数的?
在Python中,要计算指数,我们可以使用**
这个命令。比如说,如果我们想要计算x的立方,就可以输入x**3
。那么,Python是怎么处理这些多项式的呢?这个计算会用到3次浮点运算吗?那如果是非整数的指数呢?比如x**2.3
,又是怎么回事呢?
1 个回答
8
在这里,**
这个符号在字节码中会被转换成一个叫做PyNumber_Power
,第三个参数设置为None。
PyNumber_Power
会调用操作数上的一个叫做nb_power
的插槽(可以查看ternary_op
)。
如果两个数都是整数,那么就会调用一个叫做int_pow
的C函数,这个函数会成功执行,并返回结果。
但是如果x
是整数,而你用2.3
作为指数,这时整数的幂函数会出错,然后会尝试使用float_pow
。在这种情况下,只要x
大于0,就会使用C库中的pow()
函数来处理两个浮点数,这在大多数计算机架构上会由CPU的浮点支持来处理。