Python 3.x Python 3+如何在终端中以毫秒为单位显示倒计时计时器

Python 3.x Python 3+如何在终端中以毫秒为单位显示倒计时计时器,python-3.x,countdowntimer,Python 3.x,Countdowntimer,您好,我正在尝试制作一个精确为毫秒的倒计时计时器,并将其打印到终端 input : a float value like (9.200) output : countdown time for 9 seconds 200 milliseconds 像下面的网站工具 甚至我也可以尝试以毫秒格式打印时间,但时间并不准确。也许这不是一个好问题,但有什么办法吗?。非常感谢你们 我试图搜索这个案子,但没有找到匹配的 下面的代码是我从互联网上得到的,但时间是不正确的,我需要一个倒计时定时器上面的网站有。

您好,我正在尝试制作一个精确为毫秒的倒计时计时器,并将其打印到终端

input : a float value like (9.200)
output : countdown time for 9 seconds 200 milliseconds
像下面的网站工具

甚至我也可以尝试以毫秒格式打印时间,但时间并不准确。也许这不是一个好问题,但有什么办法吗?。非常感谢你们

我试图搜索这个案子,但没有找到匹配的 下面的代码是我从互联网上得到的,但时间是不正确的,我需要一个倒计时定时器上面的网站有。谢谢

from __future__ import print_function, division
import time , datetime
counter, timestr = 0, ''

print(time.asctime())
t0 = time.time()
try:
    while True:
        sectime, ff = divmod(counter,1000)
        mintime, ss = divmod(sectime,60)
        hh, mm = divmod(mintime, 60)
        print(''.join('\b' for c in timestr), end='')
        timestr='%02i:%02i:%02i.%2s' % (hh, mm, ss, ff)
        print(timestr, end='')
        time.sleep(.1)
        counter += 1
except KeyboardInterrupt:
    t0 = time.time() - t0
    print('\nCounter seconds: %.1f, time.time seconds: %.1f'
          % (counter/10.0, t0 ))
你没有提到什么对你不起作用,但我会尝试给出一个大致的答案。你可以试试这样的-

另存为timer.py 导入系统,时间 从sys.argv或任何地方创建变量_TIME,确保它是有效的浮点,>0等 取决于您期望输入的方式 _时间=5例如,删除此项 当时间>0时: m、 s=divmod_时间,60 h、 m=divmodm,60 printf\r{inth}.rjust3,'0',f{intm}.rjust2,'0', f{s:.3f}.rjust5,'0',sep=':',end= _时间-=0.001 时间0.001 其他: 打印\r已完成! 然后在终端中使用$python3 timer.py 5或类似的东西

input : a float value like (9.200)
output : countdown time for 9 seconds 200 milliseconds
笔记: 这可能不准确,尤其是当终端中的打印语句速度较慢时。由于此处的准确性可能很重要,请参阅一些更好的备选方案。 在某些终端/GUI中,\r实际上可能不会按预期将光标移回行的开头。你可能无法真正做到这一点,这是终端应用程序的问题。 编辑:
在我发布这篇文章之后,我看到你更新了你的问题。你分享的代码肯定有问题,我需要在这里详细解释。最明显的是时间。sleep0.1等待100ms,而不是1,所以你的计时器不会经常更新。尝试阅读其他资料,了解如何实现您的目标。

请提供更多详细信息。到目前为止你试过什么?你在哪里卡住了?你有任何输出或错误吗?@JanWilamowski我试图通过互联网搜索一些代码,如下所示,但不起作用。顺便问一下,你有任何方法,使上述网站简单的倒计时计时器?sectime,ff=divmodcounter,1000分钟时间,ss=divmodsectime,60小时,mm=divmodmintime,60次打印。在timestr中为c加入“\b”,end=timestr='%02i:%02i:%02i.%2s'%hh,mm,ss,ff请编辑您的答案以显示您的代码和任何错误。你更可能通过展示你的努力而不是要求一个完整的解决方案来得到答案。@JanWilamowski我要求一个完整的解决方案:谢谢你的代码,这几乎是我需要的。顺便问一下,我们有什么办法来纠正这个计时器吗?因为正如你所说,如果我们把这个定时器打印到终端上显示,那么它会减慢代码的速度吗?这可能不准确?将浮点值转换为计时器是否方便?给我看看?就像我在输入和输出中写的那样?多谢各位