Python sleep es una función que permite detener un programa durante un tiempo y luego permitir que continúe sin al­te­ra­cio­nes. Con este sencillo comando puedes utilizar este lenguaje de pro­gra­ma­ción de internet para, por ejemplo, programar pu­bli­ca­cio­nes, mostrar la hora, iniciar una cuenta atrás o poner una alarma.

API gratuita de IONOS
Gestione sus productos de Hosting a través de nuestra Interfaz de Pro­gra­ma­ción de Apli­ca­cio­nes (API)
  • Registros DNS
  • Ad­mi­ni­s­tra­ción SSL
  • Do­cu­me­n­ta­ción API

¿Qué es Python sleep?

Con Python sleep puedes pausar un programa durante un tiempo de­te­r­mi­na­do y hacer que siga eje­cu­tá­n­do­se au­to­má­ti­ca­me­n­te una vez tra­n­s­cu­rri­do el periodo de espera. Con él, los usuarios pueden, por ejemplo, sacar tiempo para leerse unas in­s­tru­c­cio­nes, o crear su propia cuenta atrás digital. Además, Python sleep puede co­m­bi­nar­se con un módulo de tiempo. Aunque la es­tru­c­tu­ra y el uso de sleep son re­la­ti­va­me­n­te sencillos, en co­m­bi­na­ción con se­n­te­n­cias Python if else, bucles while de Python o bucles for de Python, la función permite incluso realizar procesos co­m­pli­ca­dos. Salvo la función de pausa, sleep no in­te­r­fie­re con el programa, a di­fe­re­n­cia 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 in­te­rru­m­pir una secuencia de eventos es­ta­ble­ci­da. Así, primero se introduce un comando, luego se añade mediante Python sleep una pausa con duración de­te­r­mi­na­da y fi­na­l­me­n­te se indica qué acción debe eje­cu­tar­se después de la pausa.

Basta un ejemplo sencillo para ilu­s­trar­lo. El primer paso es emitir una frase con esa es­tru­c­tu­ra. 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 exac­ta­me­n­te un minuto, el código debe tener este aspecto:

import time
wait_time = 60
time.sleep(wait_time)

También puedes in­tro­du­cir el tiempo de espera en mi­li­se­gu­n­dos. 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 co­n­ve­n­cio­nal, uno de los básicos de la mayoría de tu­to­ria­les de Python, puedes crear un reloj digital con Python sleep y darle un uso to­ta­l­me­n­te 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 exac­ta­me­n­te 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 de­te­r­mi­na­da, 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á eje­cu­tá­n­do­se de forma continua. Para cerrar el bucle infinito, presiona la co­m­bi­na­ción de teclas [Ctrl] + [C].

Crear un te­m­po­ri­za­dor

Python sleep también es un excelente te­m­po­ri­za­dor. Introduce el siguiente código para co­n­fi­gu­rar, 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 exac­ta­me­n­te 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 de­s­ce­n­de­n­te. 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 Mu­l­ti­th­rea­di­ng

Con Python sleep también puedes ejecutar varios procesos al mismo tiempo, es decir, mu­l­ti­th­rea­di­ng. En este ejemplo de dos hilos distintos con es­tru­c­tu­ras de bucles for se pide emitir dos frases. Con Python sleep puedes controlar cuándo se ejecuta cada comando y así dar un orden pre­de­te­r­mi­na­do 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()
Ir al menú principal