【发布时间】:2013-01-11 06:49:37
【问题描述】:
我在 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)
我遇到的问题是 time.time() 函数似乎不是计时的。当我运行这个程序时,我得到了
0.000000000000000
True
我也尝试了最多 30 位数字,所有数字都保持为零。
考虑到我有多个 For 循环,我的程序不可能这么快。
我的问题是,为什么我的函数没有被计时?或者如果是,为什么在我知道不应该的情况下会这么快?
【问题讨论】:
标签: python performance time semantics