【发布时间】:2017-12-10 01:36:50
【问题描述】:
我试过 time.sleep(),但它的准确性完全是垃圾。例如,考虑这个循环:
for i in range(10000000):
print(i)
sleep(.334)
观察它打印的数字。如果它像我的电脑一样,它甚至都不是正常的。这个函数应该是准确的吗?我是否在系统的某个地方发现了错误?
如果这个函数不应该是准确的,那么哪个函数会更准确?
【问题讨论】:
-
您看到打印了哪些数字?您期望的数字是多少?
-
打印什么数字?跑的时候没发现什么问题
-
你想睡 1/3 秒吗?文档说明了为什么需要更长或更短的时间。 docs.python.org/3/library/time.html#time.sleep
-
您更关心某事以特定的时间间隔准确发生(例如,程序开始后每 1/3 秒精确)还是更关心某事发生后的等待时间(例如,等待 1/3事情发生后的一秒钟)?
-
在大多数“普通”计算机上,您不能期望操作花费精确的时间,因为操作系统有能力随时抢占您的应用程序。不仅如此,
print()也需要时间,for循环也是如此,你不能轻易地解释(通过设计)。如果您关心精确的时间安排,您可能需要real-time computer,但您更有可能尝试解决some other problem - 请尝试问那个问题。