首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以科学符号表示的timeit.timeit返回时间?

以科学符号表示的timeit.timeit返回时间?
EN

Stack Overflow用户
提问于 2021-04-13 17:36:20
回答 3查看 384关注 0票数 3

我使用timeit.timeit函数来计时我自己的一个函数,但是返回的时间是用科学符号表示的。

代码语言:javascript
复制
import timeit

def func():
    ...

print(timeit.timeit(stmt="func()", setup="from __main__ import func", number=100000)/100000)

这会返回类似于3.563012266666666e-05的内容。我以前使用过timeit,但这种情况从未发生过。有人知道它为什么要这么做吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-04-13 17:51:09

这很可能是因为在你找回时间之后你的分裂。当您使用f字符串(f"{time:.4f}")打印值时,.4f告诉python将该值打印为一个浮点,带有4个小数位,您可以将其设置为任意大小,以查看所需的数字数。

票数 3
EN

Stack Overflow用户

发布于 2021-04-13 17:45:19

这是因为你把它除以1000。如果不这样做,则输出如下所示:

代码语言:javascript
复制
>>> print(timeit.timeit(stmt="func()", setup="from __main__ import func", number=100000))
>>> 0.009756448998814449

Python将使用科学表示法显示任何大大小小的数字--小于或超过某一范围。

如果您想像以前一样看到结果,可以像下面这样利用Python的字符串格式:

代码语言:javascript
复制
>>> t = timeit.timeit(stmt="func()", setup="from __main__ import func", number=100000)/100000
>>> f"{t:.20f}"

在这里,:.20确保它将打印到小数点20位以下的数字。但是,请记住,通过这样做,您将浮点数转换为字符串。这将返回:

代码语言:javascript
复制
>>> '0.00000009274555020966'
票数 3
EN

Stack Overflow用户

发布于 2021-04-13 17:41:10

3.563012266666666e-05不是真正的指数形式,它只是科学的表示法。3.563012266666666e-05等于0.00003563012266666666。科学符号用于表示非常大的或非常小的数字。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67079776

复制
相关文章

相似问题

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