在python中增加计时器

时间:2016-07-15 22:41:10

标签: python timer sleep

我有一个无限的for循环,运行方式如下:

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


def timerfunction():
     time.sleep(60)

我的问题或者说我想要实现的是一个像这样运行的函数。 #do something,if savetask == None,睡眠60秒,重复循环,如果savetask ==无反复,睡眠300秒,重复循环,如果savetask ==无再次反复,睡眠600秒......等等如果savetask!=无,那么我希望它在60秒或开始时重启。

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

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

编辑:

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

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

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

1 个答案:

答案 0 :(得分:0)

你可以做这样的事情的指数退避

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

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

小风格点,python中的大写通常用于类。保持变量下限