首页 > 解决方案 > 一种在 Python 中不使用 time.sleep() 来创建时间延迟的方法?

问题描述

一般来说,我对编码相当陌生。这是一个任务,我只被允许使用 os 和 datetime 模块所以是的。只是想复制这个效果:(但没有使用 time.sleep())

import time
def _loader(s):
    while s > 0:
        time.sleep(0.33)
        print(" . ", end="")
        s = s - 1
    time.sleep(0.33)
    print("\n")

我已经尝试过了,但是当我尝试将两者相减时它只会产生错误

from datetime import timedelta
from datetime import datetime
def _loader(s):
    while s > 0:
        t1 = timedelta(datetime.now())
        t2 = timedelta(seconds=0.33)
        while 1 == 1:
            t1temp = timedelta(datetime.now())
            if t1temp - t1 < t2:
                continue
            else:
                break
        print(" . ", end="")
        s = s - 1

标签: python-3.x

解决方案


看来问题出在使用 datetime.now() 上,这样试试:

from datetime import timedelta
from datetime import datetime
def _loader(s):
    while s > 0:
        t1 = datetime.now()
        t2 = timedelta(seconds=0.33)
        while 1 == 1:
            t1temp = datetime.now()
            if t1temp - t1 < t2:
                continue
            else:
                break
        print(" . ", end="")
        s = s - 1

推荐阅读