【问题标题】:Need a python count down clock that doesn't error when its done需要一个在完成时不会出错的python倒计时时钟
【发布时间】:2018-01-12 19:51:45
【问题描述】:
def countdown(t):
    while t > 0:
        print(t)
        t = t-1
        time.sleep(1.0)
        if t == 0:
            print('blast off')

T=20

所以这个计时器很好用。它做它需要的,它很重要,这就是我想要的。但是当它结束时它会停止我正在运行的程序并执行 Timeouterror。是否有倒计时不会这样做或我可以添加一些东西?

【问题讨论】:

  • 这是针对不和谐的吗?我刚刚尝试了您提供的代码,它运行良好。
  • 当倒计时完成时,这段代码不会“出错”——它会停止,因为循环之后没有任何代码。你期望会发生什么?该错误可能是由您未显示的代码触发的。
  • 这段代码怎么称呼?
  • 假设这段代码确实引发了 TimeoutError (我不相信),你不能只做try: ... except TimeoutError: ... 来防止它完全终止你的程序吗?
  • 这是更大计划的一部分吗?

标签: python timer count countdown discord.py


【解决方案1】:

你提到这是一个后台任务,这会导致TimeoutError。那是因为 D.py 运行 asyncio,而time.sleep 是阻塞的,这意味着它会在处理时停止所有线程的运行。你想要的是异步友好的版本,await asyncio.sleep(1.0) 而不是 time.sleep(1.0)。

【讨论】:

    猜你喜欢
    • 2021-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    相关资源
    最近更新 更多