2012-08-07 47 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