Python:基本倒数计时器& function()> INT()

时间:2016-09-27 07:11:10

标签: python timer

我正在尝试创建一个在我的代码后台运行的计时器功能,并使其可以使用/检查时间。我的意思是使用/检查,我正在尝试这样做,所以我可以调用该定时器函数并将其用作整数。

这是我目前的代码:

def timer():
    for endtime in range(0, 15):
        print(15 - endtime)
        time.sleep(1)

def hall():
    timer()
    while (timer > 0):
       do something

目前仅使用print(15 - endtime)进行确认,它正在倒计时。

但是代码现在做的是执行倒计时,就是这样,它永远不会触及while循环。当然最后一个问题是我无法将函数设置为int。所以我正在寻找一些方法,我可以检查定时器所在的位置,并在循环中使用它。

3 个答案:

答案 0 :(得分:1)

你这样做的方式,你将不得不使用多线程。

这是另一种更简单的方法: 在您的脚本开头,使用time_start设置time.time()变量,其中包含自纪元以来的秒数 然后,当您需要经过的秒数时,请使用time.time() - time_start

t_start = time.time()
# do whatever you'd like
t_current = int(time.time()-t_start) # this way you get the number of seconds elapsed since start.

您也可以将它放在一个函数中,将t_start定义为全局变量。

import time
t_start = time.time()

def timer():
    global t_start
    print(str(int(time.time()-t_start)))


print('start')
time.sleep(2)
timer()
time.sleep(3)
timer()

答案 1 :(得分:0)

import time

def timer(tim):
    time.sleep(1)
    print tim

def hall():
    tim = 15
    while (tim > 0):
        print 'do something'
        timer(tim)
        tim-=1

不是最干净的解决方案,但它会做你需要的。

答案 2 :(得分:0)

代码的问题在于,当您运行hall()时,Python首先执行整个timer()(即整个for循环),然后继续运行代码(它一次只能做一件事)。因此,当它到达while中的hall()循环时,timer已经0

因此,您必须对timer做一些事情,以便它倒计时一次,然后转移到do something部分。

你能做的就是:

def hall():
    for a in range(0, 15):
        print(15 - a)
        # do something
        time.sleep(1)

这应该可以正常工作(如果您只执行hall 15次),并将代码压缩为一个函数。