In Python, sleep è una funzione che consente di mettere in pausa un programma per un momento e poi farlo pro­se­gui­re senza va­ria­zio­ni. Con questo semplice comando potete, ad esempio, tem­po­riz­za­re i risultati, vi­sua­liz­za­re l’ora, avviare un conto alla rovescia o impostare un allarme nel lin­guag­gio di pro­gram­ma­zio­ne web.

API IONOS per svi­lup­pa­to­ri
Gestisci i tuoi prodotti di hosting tramite la nostra potente API
  • Gestione record DNS
  • Am­mi­ni­stra­zio­ne SSL
  • Do­cu­men­ta­zio­ne API

Che cos’è sleep in Python?

Con sleep in Python, avete la pos­si­bi­li­tà di mettere in pausa il programma per un certo periodo di tempo e farlo ri­pren­de­re au­to­ma­ti­ca­men­te una volta trascorso il periodo di attesa. In questo modo le/gli utenti hanno il tempo di leggere un’istru­zio­ne, ad esempio, o di creare il proprio contatore digitale. Il comando sleep può essere uti­liz­za­to insieme al modulo time. Sebbene la struttura e l’uso di sleep siano re­la­ti­va­men­te semplici, in col­la­bo­ra­zio­ne con l’istru­zio­ne if-else in Python, il ciclo while in Python o il ciclo for in Python, la funzione consente di eseguire processi anche complessi. A parte il ritardo previsto, a dif­fe­ren­za di break e continue in Python, sleep non in­ter­fe­ri­sce con il programma.

Sintassi e fun­zio­na­li­tà di sleep in Python

La sintassi di sleep in Python è sempre simile a questa:

time.sleep(t)

t indica il tempo di attesa stimato ed è spe­ci­fi­ca­to in secondi nella maggior parte dei casi.

La funzione sleep in Python di solito in­ter­rom­pe una sequenza fissa di eventi. Quindi, prima impartite un comando, poi inserite un’in­ter­ru­zio­ne con una finestra temporale spe­ci­fi­ca­ta tramite sleep e infine date un’istru­zio­ne su quale azione deve essere eseguita dopo la pausa.

Per il­lu­stra­re questo aspetto si può ricorrere a un semplice esempio. In questa struttura, viene emessa una riga. Dopodiché, il programma fa una pausa di cinque secondi e poi emette una seconda riga. Questo è il codice cor­ri­spon­den­te:

import time
print("Questa riga verrà emessa immediatamente.")
time.sleep(5)
print("Questa riga verrà emessa cinque secondi dopo.")

In al­ter­na­ti­va, assegnate a time.sleep il valore x e create così un tempo di attesa. Per una pausa di un minuto esatto, il codice ap­pro­pria­to è il seguente:

import time
wait_time = 60
time.sleep(wait_time)

Potete inserire il tempo di attesa in mil­li­se­con­di. A tal fine, vi basterà dividere quanto inserito per 1.000, in questo modo:

import time
print("Questa riga verrà emessa immediatamente.")
time.sleep(500 / 1000)
print("Questa riga verrà emessa cinquecento millisecondi dopo.")

Come creare un orologio digitale con sleep in Python

Uti­liz­zan­do un ciclo while tra­di­zio­na­le, che viene trattato molto presto nella maggior parte dei tutorial su Python, potete creare un orologio digitale con sleep in Python, uti­liz­zan­do la funzione in un modo com­ple­ta­men­te nuovo. A tale scopo, ri­chie­de­te l’ora corrente che dovrà essere vi­sua­liz­za­ta nel formato ora, minuti, secondi. Con la funzione sleep impostate un ritardo di un secondo esatto e ordinate al programma di eseguire nuo­va­men­te il ciclo. Se lasciate che il ciclo continui senza un orario di fine, potete creare un orologio digitale preciso in pochi passaggi. Questo è il codice ap­pro­pria­to:

import time
while True:
    localtime = time.localtime()
    result = time.strftime("%I : %M : %S %p", localtime)
    print(result)
    time.sleep(1)

In questo caso, il risultato sarà l’ora nel formato inglese e si pre­sen­te­rà nel seguente modo:

04 : 16 : 47 PM
04 : 16 : 48 PM
04 : 16 : 49 PM
04 : 16 : 50 PM
04 : 16 : 51 PM

Se non impostate un orario di fine, queste in­for­ma­zio­ni temporali con­ti­nua­no a scorrere inin­ter­rot­ta­men­te. Per terminare il ciclo infinito, premete la com­bi­na­zio­ne di tasti [Ctrl] + [C].

Creare un timer

La funzione sleep in Python è perfetta anche per essere uti­liz­za­ta come timer. Ad esempio, per im­po­star­ne uno di cinque minuti, procedete come segue:

import time
print("Si comincia da qui: %s" % time.ctime())
time.sleep(300)
print("Ora il tempo è scaduto: %s" % time.ctime())

Il risultato cor­ri­spon­den­te si presenta come segue:

Si comincia da qui: Wed Dec 14 11:10:14 2022
Ora il tempo è scaduto: Wed Dec 14 11:15:14 2022

Tra i due risultati ottenuti ci sono esat­ta­men­te 300 secondi, quindi cinque minuti.

Conto alla rovescia con sleep in Python

Potete anche uti­liz­za­re la funzione sleep in Python se de­si­de­ra­te contare in maniera de­cre­scen­te. Nell’esempio seguente, create un conto alla rovescia da 10 a 0. Il principio è simile a quello dell’ultimo esempio, ma questa volta uti­liz­za­te un ciclo for.

import time
for i in reversed(range (1, 11)):
print(i)
time.sleep(1)
print("Si comincia!")

Se ora avviate il programma, questo conta i numeri in ordine de­cre­scen­te, a partire da 10. Grazie a sleep, ogni secondo si scopre un nuovo valore. Se il ciclo è arrivato a 1, al posto dello 0 appare il messaggio “Si comincia!”.

Funzione sleep in Python e mul­ti­th­rea­ding

L’ese­cu­zio­ne di più processi si­mul­ta­nei in Python, cioè il mul­ti­th­rea­ding, è possibile anche con sleep. In questo esempio, con due thread diversi sotto forma di cicli for, vengono richiesti due risultati. Grazie a sleep potete ora con­trol­la­re quando viene eseguito il comando, dando così un ordine fisso al programma. Funziona così:

import threading
import time
def first():
    for i in range(5):
        time.sleep(0.5)
        print("Questa è la prima funzione")
def second():
    for i in range(5):
        time.sleep(0.7)
        print("Questa è la seconda funzione")
t1 = threading.Thread(target = first)
t2 = threading.Thread(target = second)
t1.start()
t2.start()
Vai al menu prin­ci­pa­le