2013-03-19 190 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中的浮點支持處理。