Vediamo questo codice Python, breve ma potenzialmente utile e versatile, per avere un cronometro ovvero partendo da zero, stampare a video Real Time il tempo trascorso, ad intervalli prefissati (un secondo, un decimo di secondo, ecc).
Il codice è il seguente, poi lo commentiamo:
import time
start=time.time()
while(1):
if((time.time()-start)%0.1<1e-6):
print("time =",round(time.time()-start,1),"s")
- in questo caso abbiamo un ciclo infinito (
while(1)
), quindi decidiamo noi quando interrompere l'esecuzione del programma
- l'aspetto chiave è questo:
time.time()-start)%0.1
ovvero dal tempo iniziale definito (start=time.time()
) il resto della divisione con 0.1 significa un decimo di secondo; se avessimo messo 1 sarebbe 1 secondo, 0.5 mezzo secondo, ecc
- anziché
time.time()-start)%0.1==0
è sempre preferibile indicare "minore di una certa tolleranza", come ad esempio 10-6, altrimenti per una variazione infinitesima non stamperebbe correttamente i valori
round(time.time()-start,1)
per evitare di stampare inutilmente più cifre decimali del previsto
Questo è l'output grafico (ovviamente si possono aggiungere personalizzazioni nello stile). In modo analogo si può definire un timer, partendo da un valore fissato, procedere con decremento anziché incremento di tempo.