首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python运算符速度比较

Python运算符速度比较
EN

Stack Overflow用户
提问于 2022-07-15 16:33:37
回答 2查看 56关注 0票数 1

我想知道//和基本操作(如+ - * / )之间的速度

代码语言:javascript
运行
复制
import time

start = time.time()
for x in range(10**6):
    #a=10-3
    a=10//3
end = time.time()
print(end - start)

他们的速度和偏移量是一样的,我做得对吗?

EN

回答 2

Stack Overflow用户

发布于 2022-07-15 16:48:19

正如@MattDmo的注释中所提到的,您可以使用python的timeit模块。举例如下。

代码语言:javascript
运行
复制
>> import timeit
>> timeit.timeit("1+2")
0.02147197723388672
>> timeit.timeit("1/2")
0.03394913673400879
>> timeit.timeit("1*2")
0.012021064758300781

这只是一个例子,你可以玩模块来实现你想要的。有关更多细节,您可以参考文档

票数 0
EN

Stack Overflow用户

发布于 2022-07-15 17:55:00

试着做这样的事情:

代码

代码语言:javascript
运行
复制
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))

输出

代码语言:javascript
运行
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72997123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档