Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import time
>>> time.time() - time.time()
0.0为什么是这种情况?根据我的简单理解,这个函数从调用的确切时间开始,以秒为单位返回系统时钟。但是,对time.time()的两个调用不应该返回稍微不同的浮点数吗?
发布于 2018-01-10 21:05:39
定时器的分辨率不是无限的,它周期性地增加少量。如果这两个调用足够接近,您将看到一个零值。如果您尝试了大量这样的调用,您可能会发现,根据特定系统的速度、硬件细节和内核实现,大多数时间的差异为零,剩下的时间则为一些微秒。
发布于 2018-01-10 21:15:50
..。尽管时间总是以浮点数的形式返回,但并不是所有的系统都能提供比1秒更好的精度。
(我的重点)。对于Python3.3+,使用time.perf_counter代替。对于Python3.2或更高版本,或者为了向后兼容性,使用timeit.default_timer,它试图为您的系统选择最精确的时钟。
发布于 2018-01-10 21:14:02
并不总是这样,只是取决于cpu调度和时钟:
n, d = 0, 0.0
while d == 0.0:
d = time.time() - time.time()
n += 1
print(n, d)
26096 -0.0010001659393310547https://stackoverflow.com/questions/48196000
复制相似问题