time.time()不是时间

Ste*_*ven 2 python performance time semantics

我在WingIDE 101(版本4)的Windows 7操作系统上运行Python 3.2.在这种情况下环境并不重要,但我认为我应该具体.

我的代码如下.它不是最佳的,只是找到素数的一种方法:

def isPrime2(n):
  if n == 1:
      return False  
  count = 0
  for i in range(2,n+1,2):
    if n%i == 0:
      count = count + 1
      if count > 2:
        return False
  for i in range(1,n+1,2):
    if n%i == 0:
      count = count + 1
      if count > 2:
        return False         
  if count == 2:
    return True

start = time.time()
x = isPrime2(571)
end = time.time()
time_interval = end - start
print("%1.15f"%time_interval)
print(x)
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是time.time()函数似乎不是时间.当我运行这个程序时,我得到了

0.000000000000000
True
Run Code Online (Sandbox Code Playgroud)

我也尝试了这个最多30位数,所有这些都保持为零.

考虑到我有多个For循环,我的程序无法快速实现.

我的问题是,为什么我的功能没有定时?或者如果是的话,为什么我知道它不应该如此之快?

Mar*_*ers 6

在Windows上,您想要使用time.clock(); time.time()仅具有1/60秒的粒度,而前者则为您提供微秒粒度.

或者,为了保持跨平台,请timeit.default_timer()改为使用,它将time为您的平台使用正确的功能:

import timeit

start = timeit.default_timer()
Run Code Online (Sandbox Code Playgroud)