我想了解 Python 中的计时器。
假设我有一个类似的代码片段:
def abc()
print 'Hi'
print 'Hello'
print 'Hai'
我想每 1 秒打印一次。最多三倍;即;第一秒我需要检查 printf,第二秒我还需要在第三秒检查。
在我的实际代码变量值将被更新。我需要捕捉到所有变量都在什么时候更新。
谁能告诉我如何做到这一点。
time.sleep
在这种情况下很好,但如果abc()
函数需要半秒才能执行怎么办?还是5分钟?在这种情况下,您应该使用一个Timer
对象。
from threading import Timer
def abc():
print 'Hi'
print 'Hello'
print 'Hai'
for i in xrange(3):
Timer(i, abc).start()
使用time.sleep
.
import time
def abc():
print 'Hi'
print 'Hello'
print 'Hai'
for i in xrange(3):
time.sleep(1)
abc()
你应该调查一下time.sleep()
。例如:
for i in xrange(5):
abc()
time.sleep(3)
这将打印您的行 5 次,中间有 3 秒的延迟。
import time
def abc()
for i in range(3):
print 'Hi'
print 'Hello'
print 'Hai'
time.sleep(1)
import time
def abc():
print 'Hi'
print 'Hello'
print 'Hai'
for i in range(3):
time.sleep(3-i)
abc()
通常对我来说这有效......
import time
def abc():
print 'Hi'
time.sleep(1)
print 'Hello'
time.sleep(1)
print 'Hai'
time.sleep(1)
我想你可以猜到之后...
import sys
import time
c=':'
sec = 0
min = 0
hour = 0
#count up clock
while True:
for y in range(59): #hours
for x in range (59): #min
sec = sec+1
sec1 = ('%02.f' % sec) #format
min1 = ('%02.f' % min)
hour1= ('%02.f' % hour)
sys.stdout.write('\r'+str(hour1)+c+str(min1)+c+str(sec1)) #clear and write
time.sleep(1)
sec = 0
sys.stdout.write('\r' + str(hour1) + c + str(min1) + c + '00') #ensure proper timing and display
time.sleep(1)
min=min+1
min = 0
sys.stdout.write('\r' + str(hour1) + c + str(min1) + c + '00') #ensure proper timing and display
time.sleep(1)
hour=hour+1