我想知道//
和基本操作(如+ - * /
)之间的速度
import time
start = time.time()
for x in range(10**6):
#a=10-3
a=10//3
end = time.time()
print(end - start)
他们的速度和偏移量是一样的,我做得对吗?
发布于 2022-07-15 16:48:19
正如@MattDmo的注释中所提到的,您可以使用python的timeit
模块。举例如下。
>> import timeit
>> timeit.timeit("1+2")
0.02147197723388672
>> timeit.timeit("1/2")
0.03394913673400879
>> timeit.timeit("1*2")
0.012021064758300781
这只是一个例子,你可以玩模块来实现你想要的。有关更多细节,您可以参考文档。
发布于 2022-07-15 17:55:00
试着做这样的事情:
代码
import time
def get_time(process=lambda:[]):
start = time.time()
process
end = time.time()
return end-start
_test = ["+","-","*","/","//","**"]
op = {'+': lambda x, y: x + y,
'-': lambda x, y: x - y,
'*': lambda x, y: x * y,
'/': lambda x, y: x / y,
'//': lambda x, y: x // y,
'**': lambda x, y: x ** y}
for i in _test:
o = []
for x in range(3):
o.append(abs(get_time(lambda:op[i](10,3))))
print(f"On average time (operator `{i}`): ",sum(o)/len(o))
输出
On average time (operator `+`): 2.384185791015625e-07
On average time (operator `-`): 2.384185791015625e-07
On average time (operator `*`): 7.947285970052083e-08
On average time (operator `/`): 7.947285970052083e-08
On average time (operator `//`): 1.5894571940104166e-07
On average time (operator `**`): 7.947285970052083e-08
https://stackoverflow.com/questions/72997123
复制相似问题