【问题标题】:increasing timer in python在python中增加计时器
【发布时间】:2016-11-19 05:52:28
【问题描述】:

我有一个像这样运行的无限 for 循环:

for I in count():
    #doing something
    savetask = savedata()
    if savetask == None:
        timerfunction()


def timerfunction():
     time.sleep(60)

我的问题或者更确切地说我想要实现的是这样运行的功能。 #做一些事情,如果savetask == None,睡眠60秒,重复for循环,如果savetask == None AGAIN,睡眠300秒,重复for循环,如果savetask == None AGAIN AGAIN,睡眠600秒... .etc 如果 savetask != None 那么我希望它在 60 秒或开始时重新启动。

我是否需要传递额外的变量以便它知道这是该函数第二次运行并且 savetask == None?

任何帮助或指导将不胜感激。

编辑:

因为我使用的是count(),而count函数是:

def count(I=0)
    while not finished():
        yield I
        I += 1

这是否意味着 i 每次增加一?所以也许我可以用它来计算函数运行的次数,如果 savetask != None 则重置 i?

【问题讨论】:

  • 为什么我得到 2 票反对???
  • 你从哪里获得 savetask?
  • @Hamlett 我在上面编辑了我的代码。不确定它是否真的与问题有关,但如果它有帮助,那就太好了。不过在那之前还有很多代码......

标签: python timer sleep


【解决方案1】:

你可以做类似这样的指数退避

for i in count():
    #doing something
    savetask = savedata()
    if savetask == None:
        timerfunction(i)

def timerfunction(i):
     time.sleep(60*2**i)

次要风格点,python 中的大写字母通常用于类。保持变量小写

【讨论】:

  • @James 如何重置计数?
  • @Dorian 当你调用它时传递一个 0。
猜你喜欢
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-18
  • 1970-01-01
  • 2018-10-01
  • 1970-01-01
相关资源
最近更新 更多