用或不用pow函数?

2020年9月5日 / 29次阅读 / Last Modified 2020年9月5日
内置函数数值计算

很长一段时间,我都没有直接使用pow函数,用**符号可以替代它。不过,pow函数也有其可以使用的情况。

在pow计算中使用mod参数

pow函数还有一个可选的mod参数,用来做模运算,如果你需要在X次方后再取模,使用pow可能更快的计算出结果。

$ python3 -m timeit '(123456**300)%8'
50000 loops, best of 5: 7.32 usec per loop
$ python3 -m timeit 'pow(123456,300,8)'
500000 loops, best of 5: 556 nsec per loop

这种情况,使用pow函数。

开任意次方根时用**

在计算开任意次方根的时候,**运算符能够有更好的性能:

$ python3 -m timeit '1234512345**(1/300)'
50000000 loops, best of 5: 5.42 nsec per loop
$ python3 -m timeit 'pow(1234512345,1/300)'
2000000 loops, best of 5: 108 nsec per loop

$ python3 -m timeit '1234512345**1.25'
50000000 loops, best of 5: 5.41 nsec per loop
$ python3 -m timeit 'pow(1234512345,1.25)'
2000000 loops, best of 5: 105 nsec per loop

用**快好多呀......

本文的测试数据是通过在命令行使用timeit模块获得。

-- EOF --

本文链接:https://www.pynote.net/archives/2452

留言区

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top