# Sleep in Python: come mettere in pausa i programmi

In Python, sleep è una funzione che consente di mettere in pausa un programma per un momento e poi farlo proseguire senza variazioni. Con questo semplice comando potete, ad esempio, temporizzare i risultati, visualizzare l’ora, avviare un conto alla rovescia o impostare un allarme nel [linguaggio di programmazione web](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/linguaggi-programmazione-web/ "Linguaggi programmazione web").

## Che cos’è sleep in Python?

Con sleep in Python, avete la possibilità di **mettere in pausa il programma per un certo periodo di tempo e farlo riprendere automaticamente una volta trascorso il periodo di attesa**. In questo modo le/gli utenti hanno il tempo di leggere un’istruzione, ad esempio, o di creare il proprio contatore digitale. Il comando sleep può essere utilizzato insieme al modulo time. Sebbene la struttura e l’uso di sleep siano relativamente semplici, in collaborazione con l’[istruzione if-else in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/if-else-in-python/), il [ciclo while in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/ciclo-while-in-python/) o il [ciclo for in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/ciclo-for-su-python/), la funzione consente di eseguire processi anche complessi. A parte il ritardo previsto, a differenza di [break e continue in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/break-e-continue-in-python/), sleep non interferisce con il programma.

## Sintassi e funzionalità di sleep in Python

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

```none
time.sleep(t)
```

*t* indica il tempo di attesa stimato ed è specificato in secondi nella maggior parte dei casi.

La funzione sleep in Python **di solito interrompe una sequenza fissa di eventi**. Quindi, prima impartite un comando, poi inserite un’interruzione con una finestra temporale specificata tramite sleep e infine date un’istruzione su quale azione deve essere eseguita dopo la pausa.

Per illustrare 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 corrispondente:

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

In alternativa, assegnate a *time.sleep* il valore x e create così un tempo di attesa. Per una pausa di un minuto esatto, il codice appropriato è il seguente:

```none
import time
wait_time = 60
time.sleep(wait_time)
```

Potete inserire il tempo di attesa in millisecondi. A tal fine, vi basterà dividere quanto inserito per 1.000, in questo modo:

```none
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

Utilizzando un ciclo while tradizionale, che viene trattato molto presto nella maggior parte dei [tutorial su Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/tutorial-python/ "Tutorial Python"), potete creare un orologio digitale con sleep in Python, utilizzando la funzione in un modo completamente nuovo. A tale scopo, richiedete l’ora corrente che dovrà essere visualizzata nel formato ora, minuti, secondi. Con la funzione sleep impostate un ritardo di un secondo esatto e ordinate al programma di eseguire nuovamente 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 appropriato:

```none
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 presenterà nel seguente modo:

```none
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 informazioni temporali continuano a scorrere ininterrottamente. Per terminare il ciclo infinito, premete la combinazione di tasti \[Ctrl\] + \[C\].

## Creare un timer

La funzione sleep in Python è perfetta anche per essere utilizzata come timer. Ad esempio, per impostarne uno di cinque minuti, procedete come segue:

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

Il risultato corrispondente si presenta come segue:

```none
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 esattamente 300 secondi, quindi cinque minuti.

## Conto alla rovescia con sleep in Python

Potete anche utilizzare la funzione sleep in Python se desiderate contare in maniera decrescente. Nell’esempio seguente, create un conto alla rovescia da 10 a 0. Il principio è simile a quello dell’ultimo esempio, ma questa volta utilizzate un ciclo for.

```none
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 decrescente, 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 multithreading

L’esecuzione di più processi simultanei in Python, cioè il multithreading, è 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 controllare quando viene eseguito il comando, dando così un ordine fisso al programma. Funziona così:

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


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/sleep-in-python/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/sleep-in-python/) for AI/LLM consumption.