Python sleep: Cómo detener programas temporalmente

Python sleep es una función que permite detener un programa durante un tiempo y luego permitir que continúe sin alteraciones. Con este sencillo comando puedes utilizar este lenguaje de programación de internet para, por ejemplo, programar publicaciones, mostrar la hora, iniciar una cuenta atrás o poner una alarma.

API gratuita de IONOS

La nueva API soporta operaciones a través de las cuales puedes recuperar o actualizar los datos de tus dominios, DNS y SSL.

Registros DNS
Administración SSL
Documentación API

¿Qué es Python sleep?

Con Python sleep puedes pausar un programa durante un tiempo determinado y hacer que siga ejecutándose automáticamente una vez transcurrido el periodo de espera. Con él, los usuarios pueden, por ejemplo, sacar tiempo para leerse unas instrucciones, o crear su propia cuenta atrás digital. Además, Python sleep puede combinarse con un módulo de tiempo. Aunque la estructura y el uso de sleep son relativamente sencillos, en combinación con sentencias Python if else, bucles while de Python o bucles for de Python, la función permite incluso realizar procesos complicados. Salvo la función de pausa, sleep no interfiere con el programa, a diferencia de Python break y continue.

Sintaxis y función de Python sleep

La sintaxis de Python sleep siempre es la siguiente:

time.sleep(t)

t denota el tiempo de espera estimado y en la mayoría de los casos se expresa en segundos.

Python sleep suele interrumpir una secuencia de eventos establecida. Así, primero se introduce un comando, luego se añade mediante Python sleep una pausa con duración determinada y finalmente se indica qué acción debe ejecutarse después de la pausa.

Basta un ejemplo sencillo para ilustrarlo. El primer paso es emitir una frase con esa estructura. Luego, el programa se detiene durante cinco segundos y se emite una segunda frase. Este es el código:

import time
print( "Esta frase se emite inmediatamente.")
time.sleep(5)
print("Esta frase se emite a los cinco segundos.")

Otra opción es asignar a time.sleep un valor x y fijar así un tiempo de espera. Para una pausa de exactamente un minuto, el código debe tener este aspecto:

import time
wait_time = 60
time.sleep(wait_time)

También puedes introducir el tiempo de espera en milisegundos. Para ello, basta con dividir el dato entre mil, que quedaría de la siguiente manera:

import time
print("Esta frase se emite inmediatamente.")
time.sleep(500 / 1000)
print("Esta frase se emite pasados quinientos milisegundos.")

Crear un reloj digital con Python sleep

Con un bucle while convencional, uno de los básicos de la mayoría de tutoriales de Python, puedes crear un reloj digital con Python sleep y darle un uso totalmente distinto a esta función. Para ello, se pregunta la hora actual, que se emite en formato hora, minutos y segundos. Con Python sleep, se establece un retardo de exactamente un segundo y se ordena al programa que vuelva a ejecutar el bucle. Si dejas que el bucle continúe sin que finalice a una hora determinada, puedes crear un reloj digital preciso en solo unos pasos. Este es el código:

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

En este caso, se emitiría de salida la hora británica y tendría el siguiente aspecto:

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

Si no se establece una hora final, la entrada de tiempo seguirá ejecutándose de forma continua. Para cerrar el bucle infinito, presiona la combinación de teclas [Ctrl] + [C].

Crear un temporizador

Python sleep también es un excelente temporizador. Introduce el siguiente código para configurar, por ejemplo, cinco minutos:

import time
print("Aquí empieza: %s" % time.ctime())
time.sleep(300)
print("Aquí se acaba el tiempo: %s" % time.ctime())

Se mostrará algo similar a esto:

Aquí empieza: Wed Dec 14 11:10:14 2022
Aquí se acaba el tiempo: Wed Dec 14 11:15:14 2022

Entre ambos hay exactamente 300 segundos, es decir, cinco minutos.

Cuenta atrás con Python sleep

También puedes usar la función sleep de Python para hacer una cuenta regresiva. En el siguiente ejemplo se crea una cuenta atrás que va de 10 a 0. El mecanismo es similar al del ejemplo anterior, pero esta vez se utiliza un bucle for.

import time
for i in reversed(range (1, 11)):
print(i)
time.sleep(1)
print("¡Se acabó!")

Si ahora ejecutas el programa, este contará del 10 al 1 en orden descendente. Sleep emite un nuevo valor cada segundo. Cuando el bucle llega al 1, aparece el mensaje “¡Se acabó!” en lugar del 0.

Python sleep y Multithreading

Con Python sleep también puedes ejecutar varios procesos al mismo tiempo, es decir, multithreading. En este ejemplo de dos hilos distintos con estructuras de bucles for se pide emitir dos frases. Con Python sleep puedes controlar cuándo se ejecuta cada comando y así dar un orden predeterminado al programa. Funciona de la siguiente manera:

import threading
import time
def first():
    for i in range(5):
        time.sleep(0.5)
        print("Esta es la primera función")
def second():
    for i in range(5):
        time.sleep(0.7)
        print("Esta es la segunda función")
t1 = threading.Thread(target = first)
t2 = threading.Thread(target = second)
t1.start()
t2.start()