[英]How to make countdown with time()
我編寫了以下代碼來進行倒計時:
import time
end = time.time() + 5.5
if time.time() == end:
print('Time\'s up')
那沒用。 這不是錯誤。 它什么都沒發生,有人有主意嗎? 謝謝!
您可以在設置end
之后立即再次檢查time.time()
,並且只檢查一次,因此肯定不會在5.5秒之后。 如果要通過對代碼進行最少的修改來做到這一點:
while time.time() < end:
pass
print('Time\'s up')
您不希望檢查==
,以防time.time()調用未返回確切的微秒。
如果要正確執行此操作,則應使用time.sleep(5.5)
。
您正在比較是否相等,但是假設返回的時間戳與原始時間戳完全相同 ,外加5.5秒。 除非您非常幸運,否則不會發生這種情況。 另外,你在做這個檢查你檢索以前的時間之后 ,有沒有機會,目前有550秒就會這兩個語句之間傳遞。
您可以使用適當的方法或天真的方法來解決此問題。
解決此問題的正確方法是使用time.sleep(5.5)
:
import time
time.sleep(5.5)
print("Time's up!")
像您的示例中那樣簡單地實現它:
import time
end = time.time() + 5.5
while time.time() < end:
pass
print("Time's up")
這將旋轉一個空循環,直到請求的時間過去。 我之所以這么稱呼我,是因為您的程序將卡住所有可用的CPU資源,卻無所事事,除了檢查時鍾和當前時間,直到5.5秒為止。 在第一個示例中,它告訴操作系統“嘿,請在5.5秒內喚醒我”,其他進程可以在兩者之間使用CPU。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.