gpt4 book ai didi

Python整数除法运算符与math.floor

转载 作者:行者123 更新时间:2023-11-28 20:38:35 25 4
gpt4 key购买 nike

与 math.floor 相比,使用整数除法运算符在性能上有什么好处吗?

7 // 2

结束

math.floor(7/2)

最佳答案

整数除法比 math.floor 函数调用快得多:

>>> import timeit
>>> timeit.timeit('7//2')
0.024671780910702337
>>> timeit.timeit('floor(7/2)', setup='from math import floor')
0.27053647879827736
>>> timeit.timeit('math.floor(7/2)', setup='import math')
0.3131167508719699

正如您在反汇编中看到的那样,使用 math 模块的 floor 函数(使用 import mathmath.floorfrom math import floorfloor) 涉及对普通整数除法的额外查找和函数调用:

>>> import dis
>>> import math
>>> from math import floor
>>> def integer_division():
... 7//2
...
>>> def math_floor():
... floor(7/2)
...
>>> def math_full_floor():
... math.floor(7/2)
...
>>> dis.dis(integer_division)
2 0 LOAD_CONST 3 (3)
3 POP_TOP
4 LOAD_CONST 0 (None)
7 RETURN_VALUE
>>> dis.dis(math_floor)
2 0 LOAD_GLOBAL 0 (floor)
3 LOAD_CONST 3 (3.5)
6 CALL_FUNCTION 1 (1 positional, 0 keyword pair)
9 POP_TOP
10 LOAD_CONST 0 (None)
13 RETURN_VALUE
>>> dis.dis(math_full_floor)
2 0 LOAD_GLOBAL 0 (math)
3 LOAD_ATTR 1 (floor)
6 LOAD_CONST 3 (3.5)
9 CALL_FUNCTION 1 (1 positional, 0 keyword pair)
12 POP_TOP
13 LOAD_CONST 0 (None)
16 RETURN_VALUE

关于Python整数除法运算符与math.floor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40777772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com