2012-08-07 49 views
2

Python的字符串替换我的这个简单的Python代码,显示0.000在打印语句浮点#

import time 
t1 = time.time() 
total = sum([x for x in range(1000) if x%3 is 0 or x%5 is 0]) 
t2 =time.time() 

print "Ans is: %d, Time is %f" %(total,(t2-t1)*1000.0) 

我得到这个作为我的输出

Ans is: 233168, Time is 0.000000 

为什么我看不到我的号码结果?我搜索了其他一些用字符串替换数字的例子,他们正在做我正在做的事情,有什么帮助?

我使用%0.3f和%d以及....嗯...在此先感谢您的帮助也试过

编辑

当我尝试此代码:

import time 
t1 = time.time() 
total = sum([x for x in range(1000) if x%3 is 0 or x%5 is 0]) 
t2 =time.time() 
print t2 
print "Ans is: %d, Time is %f" %(total,(t2-t1)*1000.0) 

我得到这个答案,

1344350841.39 
Ans is: 233168, Time is 15.000105 
+0

奇怪,我得到'答案是:233168,时间是250.000000'作为输出(在XP SP2中的IPython v 2.7.2,并且大约有一半的时间在常规的Python shell下) - 你喜欢上一个*超快*机器?如果你将范围改变到更大的价值呢? – Levon 2012-08-07 14:41:11

+0

无法重现,我得到的答案是:233168,时间是0.349045(Python 2.7.3,Mac OS X) – 2012-08-07 14:41:17

+0

在您的操作系统上,时钟的分辨率可能太低,以至于两个时间点。尝试'打印t1 == t2',看看它是否是'真'。 (你的操作系统是什么?) – 2012-08-07 14:42:47

回答

1

它不是直接回答你的问题,但如果你使用的是Windows我倒是[R ather建议使用clock()。根据文档,它在UNIX/MacOS上的行为不同。

from time import clock 
clock() 
total = sum([x for x in range(1000) if x%3 == 0 or x%5 == 0]) 
print "Ans is: %d, Time is %f" %(total,clock()) 
+0

使用时钟()* 1000给我, 答案是:233168,时间是0.319035,所有这些变化的结果是奇怪的,现在我不知道该信任什么时间... – user772401 2012-08-07 15:11:37

+0

我不知道你为什么乘以1000但结果是正确的。操作很快,您可以信任它。当然,这取决于你在同一时间运行的其他任务。 – hendrik 2012-08-07 15:36:56

+0

谢谢:)寻求帮助 – user772401 2012-08-07 17:02:37