2017-03-20 23:05 GMT-05:00 Rolando Paz <flx...@gmail.com>: > Hola a todos de nuevo... > > Ahora regreso con un pequeño código: > > import time > > start_time = time.time() > #tiempo total en segundos, como ejemplo 10. > tiempo_total = 10 > #numero de conmutaciones generadas, como ejemplo 4. > conmutaciones = 4 > for offset in range(tiempo_total): > while (time.time() - start_time) < offset: > time.sleep(0.01) > #lo siguiente realiza una conmutacion entre 0 y 1. > count = 0 > for i in range(conmutaciones): > count = (count + 1) % 2 > print count > > Lo que hace este código es conmutar entre 0 y 1, tantas veces como se defina > en "conmutaciones", durante el tiempo establecido en "tiempo_total". > > La salida es la siguiente. > > 0 > 1 > 0 > 1 > > Estoy tratando de entender cómo usar este código para controlar los tiempos > que se definen en la imagen adjunta, es decir: > > T1 = tiempo durante el cual la conmutacion es 1 > T0 = tiempo durante el cual la conmutacion es 0 > Tiempo Total = tiempo total de las conmutaciones > > Agradecería cualquier comentario sobre como poder controlar los tiempos > anteriores. >
Tu intención es que espere un tiempo tras cada print de 0 o 1? o que imprima 0/1 4 veces y luego esperar? import time from itertools import cycle conmutador = cycle((0,1)) tiempo_total = 10 conmutaciones = 4 start = time.time() end = start + tiempo_total time_per_pulse = tiempo_total / conmutaciones while end > time.time(): pulse_start = time.time() print(next(conmutador)) pulse_end = time.time() time.sleep(time_per_pulse - (pulse_end - pulse_start)) Ahora, time.sleep no es exacto, el tiempo va a ser normalmente mayor al que especificas, depende del sistema. También hay threading.Event.wait que puede ser más exacto. Saludos _______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es