色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

python x。** y與math.pow(x,y)的指數

瀏覽:57日期:2022-08-07 10:09:05
如何解決python x。** y與math.pow(x,y)的指數?

使用Power運算符**將更快,因為它不會產生函數調用的開銷。如果您反匯編Python代碼,則可以看到以下內容:

>>> dis.dis(’7. ** i’) 1 0 LOAD_CONST 0 (7.0) 3 LOAD_NAME0 (i) 6 BINARY_POWER 7 RETURN_VALUE >>> dis.dis(’pow(7., i)’) 1 0 LOAD_NAME0 (pow) 3 LOAD_CONST 0 (7.0) 6 LOAD_NAME1 (i) 9 CALL_FUNCTION 2 (2 positional, 0 keyword pair) 12 RETURN_VALUE >>> dis.dis(’math.pow(7, i)’) 1 0 LOAD_NAME0 (math) 3 LOAD_ATTR1 (pow) 6 LOAD_CONST 0 (7) 9 LOAD_NAME2 (i) 12 CALL_FUNCTION 2 (2 positional, 0 keyword pair) 15 RETURN_VALUE

請注意,我在這里使用變量i作為指數,因為類似常數的表達式7. ** 5實際上是在編譯時求值的。

現在,實際上,這種差異并不重要,正如您在計時時可以看到的那樣:

>>> from timeit import timeit>>> timeit(’7. ** i’, setup=’i = 5’)0.2894785532627111>>> timeit(’pow(7., i)’, setup=’i = 5’)0.41218495570683444>>> timeit(’math.pow(7, i)’, setup=’import math; i = 5’)0.5655053168791255

所以,雖然pow和math.pow大約慢一倍,但仍不夠快,不會太在乎。除非您實際上可以將求冪識別為瓶頸,否則如果清晰度降低,就沒有理由選擇一種方法而不是另一種方法。這尤其適用,因為pow例如提供了集成的模運算。

Alfe在上述評論中提出了一個很好的問題:

timeit表明這math.pow比**所有情況都要慢。math.pow()無論如何有什么好處?有誰知道它有什么好處呢?

math.pow內置函數pow和冪運算符的最大區別**在于,它 始終使用浮點語義。因此,如果由于某種原因而要確保返回的結果是浮點數,math.pow則將確保此屬性。

我們來看一個示例:我們有兩個數字i和j,不知道它們是浮點數還是整數。但我們希望得到的浮點結果i^j。那么我們有什么選擇呢?

我們可以將至少一個參數轉換為浮點數,然后執行i ** j。我們可以i ** j將結果轉換為浮點數(當浮點數為i或時,會自動使用浮點指數j,因此結果相同)。我們可以使用math.pow。

因此,讓我們測試一下:

>>> timeit(’float(i) ** j’, setup=’i, j = 7, 5’)0.7610865891750791>>> timeit(’i ** float(j)’, setup=’i, j = 7, 5’)0.7930400942188385>>> timeit(’float(i ** j)’, setup=’i, j = 7, 5’)0.8946636625872202>>> timeit(’math.pow(i, j)’, setup=’import math; i, j = 7, 5’)0.5699394063529439

如您所見,math.pow實際上更快!如果考慮一下,函數調用的開銷現在也消失了,因為在所有其他替代方案中,我們都必須調用float()。

此外,可能值得指出的是**,pow可以通過實現自定義類型的特殊__pow__(和__rpow__)方法來覆蓋和的行為。因此,如果您出于某種原因(無論出于何種原因)不希望使用它,math.pow則不會這樣做。

解決方法

使用math.pow或**運算符哪個更有效?我什么時候應該使用另一個?

到目前為止,我知道x**y可以返回一個int或一個,float如果您使用小數,該函數pow將返回一個浮點數

import mathprint math.pow(10,2)print 10. ** 2

標簽: Python 編程
主站蜘蛛池模板: 殴美一级视频 | 亚洲欧美手机在线观看 | 国产精品九九久久一区hh | 国产日韩欧美精品在线 | 亚洲最大免费视频网 | 欧美一级毛片香蕉网 | 99视频在线观看视频 | 中文字幕日韩精品亚洲七区 | 兔子先生节目在线观看免费 | 日韩欧美亚洲每的更新在线 | 成人精品一区二区不卡视频 | 亚洲国产99 | 91网在线| 久草草视频在线观看免费高清 | 久久99精品视频 | 可以免费看黄色的网站 | 久草网视频在线 | 国产区精品一区二区不卡中文 | 一级特黄色毛片免费看 | 免费一级a毛片在线播放视 免费一级α片在线观看 | 点击进入不卡毛片免费观看 | 国产精品所毛片视频 | 加勒比久久综合 | 日本视频一区二区三区 | 一级做性色a爰片久久毛片 一级做性色a爰片久久毛片免费 | 免费永久观看美女视频网站网址 | 国产第2页 | 亚洲六月丁香六月婷婷蜜芽 | 欧美成人免费大片888 | 国产男女 爽爽爽爽视频 | 国产主播福利片在线观看 | 99久久伊人一区二区yy5099 | 日本卡一卡2卡3卡4精品卡无人区 | 成人免费观看www在线 | 夜色www国产精品资源站 | 一级做a爰片久久毛片看看 一级做a爰片久久毛片鸭王 | 在线播放免费播放av片 | 宅女福利视频在线看免费网站 | 国产精品18久久久久久久久久 | 免费看欧美毛片大片免费看 | 日本特黄a级高清免费酷网 日本特黄特色 |