Я хочу узнать о таймере в Python.
Предположим, что у меня есть фрагмент кода:
def abc()
print 'Hi'
print 'Hello'
print 'Hai'
И я хочу распечатать его каждые 1 секунду. Максимум три раза; 1-я секунда мне нужно проверить printf, 2-я секунда мне нужно также проверить на 3-ей секунде.
В моих действительных значениях кода переменная будет обновляться. Мне нужно зафиксировать, во сколько все переменные обновляются.
Может кто-нибудь сказать мне, как это сделать.
Используйте time.sleep
.
import time
def abc():
print 'Hi'
print 'Hello'
print 'Hai'
for i in xrange(3):
time.sleep(1)
abc()
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()
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
обычно для меня это работает...
import time
def abc():
print 'Hi'
time.sleep(1)
print 'Hello'
time.sleep(1)
print 'Hai'
time.sleep(1)
Думаю, после этого можно догадаться...
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()
Вы должны посмотреть time.sleep()
. Например:
for i in xrange(5):
abc()
time.sleep(3)
Это будет печатать ваши строки 5 раз с задержкой в 3 секунды.
n
секунд?