簡體   English   中英

如何使用time()倒數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM