用python编写的计时器挣扎?

时间:2016-06-25 20:21:57

标签: python python-2.7 timer

我编写了一个程序,假设它运行了几个小时来完成它的工作,该程序定义了许多函数,而且函数也没有按顺序排列,用户只在程序进入函数时才看到计时器由于其他功能显示然后时间冻结,有没有办法在整个程序中显示所有时间而不冻结,计时器也没有达到60它变为34然后改变分钟 改变我的代码

#!/usr/bin/env python 2.7.11

import timeit,os


Start = timeit.default_timer()


def Func1():
    pass   #This Function has things in it I just put pass to show 

def Func2():
    pass

def Func3():

    End = timeit.default_timer()-Start

    Hours = int(round((End/60**2)))
    Mins  = int(round(End/60))
    Secs  = int(round(End))


    if Secs >= 60 and Mins < 60:
        Mins+=1;
    if Secs > 60:
        Secs=int(round(Secs-60))
    else:
        Secs=0
    if Mins >= 60 and Secs >= 60:
        Hours+=1
        Mins=0;
    if Secs > 60:
        Secs=int(round(Secs-60));
    else:
        Secs=0


    if Hours > 9 and Mins > 9 and Secs > 9:

        Timed = ' Time: %d:%d:%d ' %(Hours,Mins,Secs)
    #

    if Hours > 9 and Mins > 9 and Secs <= 9:

        Timed = ' Time: %d:%d:0%d ' %(Hours,Mins,Secs)

    if Hours > 9 and Mins <= 9 and Secs > 9:

        Timed = ' Time: %d:0%d:%d ' %(Hours,Mins,Secs)

    if Hours <= 9 and Mins > 9 and Secs > 9:

        Timed = ' Time: 0%d:%d:%d ' %(Hours,Mins,Secs)
    #
    if Hours <= 9 and Mins > 9 and Secs > 9:

        Timed = ' Time: %0d:%d:%d ' %(Hours,Mins,Secs)

    if Hours > 9 and Mins <= 9 and Secs > 9:

        Timed = ' Time: %d:0%d:%d ' %(Hours,Mins,Secs)

    if Hours > 9 and Mins > 9 and Secs <= 9:

        Timed = 'Time: %d:%d:0%d ' %(Hours,Mins,Secs)
    #
    if Hours > 9 and Mins <= 9 and Secs <= 9:
        Timed = ' Time: %d:0%d:0%d ' %(Hours,Mins,Secs)

    if Hours <= 9 and Mins <= 9 and Secs > 9:
        Timed =' Time: 0%d:0%d:%d ' %(Hours,Mins,Secs)
    #
    if Hours <= 9 and Mins <= 9 and Secs > 9:
        Timed =  ' Time: 0%d:0%d:%d ' %(Hours,Mins,Secs)

    if Hours <= 9 and Mins <= 9 and Secs <= 9:
        Timed = ' Time: 0%d:0%d:0%d ' %(Hours,Mins,Secs)



    os.system('clear');print Timed


if __name__=='__main__':
    while True:
        Func3()
        Func1()
        Func2()

1 个答案:

答案 0 :(得分:0)

听起来你有几个问题,如果你能发布所有相关的代码就会很棒。对于计时器重置的第一个问题,您可以执行类似这样的操作,您始终将启动变量保留在内存中并且不会覆盖它,然后只要您想要时间过去就ping time_elapsed = end- start(这样就不会意外地重置,这听起来像是发生在你身上的事情)。

import time

start = time.time()
print("hello")
end = time.time()
print(end - start)

现在您已将开始时间存储在内存中,您始终可以覆盖结束变量并获取更新时间,而无需担心计时器停止和重新启动。

对于关于你的Func3()的问题的第二部分,你可以做类似这样的事情,它只对商和剩余部分进行单一划分以提高效率。这应该为您提供HH:MM :: SS的准确时间。

time_elapsed = end - start
Mins, Secs = divmod(time_elapsed, 60)
Hours, Mins = divmod(Mins, 60)
print "%d:%02d:%02d" % (Hours, Mins, Secs)