Python 为什么time.time()给出0.0?

Python 为什么time.time()给出0.0?,python,Python,我有一个python程序,它由一个函数myFunc(m,n) 基本上,该函数包含两个for循环 def myFunc(m, n) : for i in range(m) : for j in range(n) : # do it ... return 我想计算m,n=20,20所经过的时间 我是这样做的: start_time = time.time() b = myFunc(m,n) elapsed_time = time.ti

我有一个python程序,它由一个函数
myFunc(m,n)

基本上,该函数包含两个for循环

def myFunc(m, n) : 
    for i in range(m) : 
        for j in range(n) : 
            # do it ...
    return 
我想计算
m,n=20,20所经过的时间

我是这样做的:

start_time = time.time()
b = myFunc(m,n)
elapsed_time = time.time() - start_time
print elapsed_time
结果几乎总是0.0。为什么?

因为
time.time()-time.time()
0.0
myFunc
不需要很长时间时。

<

尽管时间总是以浮点数的形式返回,但并非所有系统提供的时间精度都优于1秒

因此,如果
myFunc
所需时间不到一秒钟,并且您正在使用这样的操作系统,那么
time.time
的两次调用之间的差值可能为0.0

您可以使用
timeit.default\u timer
而不是
time.time
timeit。默认计时器将为您的系统选择最佳计时器(
time.time
time.clock
time.perf_counter


还要注意,它提供了更精确的方法来测试代码片段的性能。

20个循环太短。试着人为地把它变大。它很少是
0.0009
,而且几乎总是
0.0
。谢谢你的反对票。我很感激。