while True:
now = datetime.datetime.now()
if now.second == 1:
print "One"
我的程序打印一次約7次。如何讓它只打印一次?Python 2.7 while循環時間
while True:
now = datetime.datetime.now()
if now.second == 1:
print "One"
我的程序打印一次約7次。如何讓它只打印一次?Python 2.7 while循環時間
您的電腦速度太快。
它需要當前時間,測試當前秒是否是一次,然後再次。既然速度如此之快,它可以在不到一秒的時間內做到這一點,你會得到更多的輸出線。
使每個迭代之後等待:
while True:
now = datetime.datetime.now()
if now.second == 1:
print "One"
time.sleep(59) # wait 59 seconds after success
time.sleep(1) # wait 1 second after each fail
這一計劃將睡覺時間最多。如果你希望它做任何有用的事情,它將是一個不同的計劃。
如何存儲先前用於打印的值?
previous = None
while True:
now = datetime.datetime.now()
if now.second == 1 and now.second != previous:
print "One"
previous = now.second # store the last value
你確定嗎?以前始終是1 – 2011-12-29 11:01:59
而不是先前存儲now.second,現在存儲。 – 2011-12-29 11:06:58
我首先想到的是讓'time.sleep(1)'後,但是這可能是邪惡的:P – Interrobang 2011-12-29 10:56:53
你確定,這是約7倍?那麼,這是非常低的數字,說實話。這意味着,您的計算機現在檢查值大約需要0.14秒。 順便說一下,請更正您的報價中的縮進。 – Gandi 2011-12-29 11:05:10
@Gandi,好點。我的印刷品比stdout更能處理成千上萬的問題。 – Ben 2011-12-29 11:08:48