Temporizador de cuenta atrás de Python

Quiero saber acerca de temporizador en Python.

Supongamos que tengo un fragmento de código como:

def abc() print 'Hi' print 'Hello' print 'Hai' 

Y quiero imprimirlo cada 1 segundo. Máximo tres veces, es decir; 1er segundo, necesito revisar el printf, 2do segundo, necesito chequear también en el 3er segundo.

En mi código real las variables se actualizarán. Necesito capturar en qué segundo se actualizan todas las variables.

¿Alguien puede decirme cómo hacer esto?

Usa time.sleep .

 import time def abc(): print 'Hi' print 'Hello' print 'Hai' for i in xrange(3): time.sleep(1) abc() 

time.sleep está bien en este caso, pero ¿qué time.sleep si la función abc() tarda medio segundo en ejecutarse? ¿O 5 minutos? En este caso debes usar un objeto Timer .

 from threading import Timer def abc(): print 'Hi' print 'Hello' print 'Hai' for i in xrange(3): Timer(i, abc).start() 

Deberías mirar en time.sleep() . Por ejemplo:

 for i in xrange(5): abc() time.sleep(3) 

Eso imprimirá sus líneas 5 veces con un retraso de 3 segundos entre.

 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() 

Por lo general para mí esto funciona …

 import time def abc(): print 'Hi' time.sleep(1) print 'Hello' time.sleep(1) print 'Hai' time.sleep(1) 

Creo que puedes adivinar después de eso …

 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