目标是当 sleep_time 达到 0.1 时,它会启动一个循环并打印数字。
import time
number = 0
sleep_time = 1
# Main code
while sleep_time >= 0.1:
if sleep_time == 0.1:
while True:
print(number)
number += 1
time.sleep(sleep_time)
print(number)
sleep_time -= 0.1
这会打印从 1 到 10 的数字,然后停止。
请您参考如下方法:
这是一个浮点不精确的问题,考虑:
>>> sleep = 1
>>> dec = 0.1
>>> for _ in range(9):
... sleep -= dec
...
>>> sleep
0.10000000000000014
>>> sleep == 0.1
False
>>>
在处理这类事情时,通常 math.isclose 是一个可行的解决方案:
>>> import math
>>> math.isclose(sleep, 0.1)
True
>>>
下面应该是required reading
其他方法是仅使用 int 对象,或使用 decimal.Decimal。
