Blog / Python funció sleep()

Python funció sleep()

per SW Team

Python time sleep

La funció time sleep de Python es fa servir per retardar l'execució d'un programa. Podem fer servir la funció sleep de Python per pausar l'execució del programa durant un lapse específic en segons. És important tenir en compte que la funció sleep de Python només atura l'execució del subprocés actual i no del programa íntegrament.

Sintaxi de la funció sleep() de Python

El mètode sleep() de Python pertany al mòdul time de Python. Per poder utilitzar aquest mètode, cal importar primer aquest mòdul. La manera de fer servir la funció sleep() de Python és la següent:

 #Importem el mòdul time
 import time
 temps= 4 # 4 segons
 time.sleep(temps)

L'argument del mètode sleep() es troba en segons. Per tant, en executar la sentència time.sleep(temps), la línia de codi següent sexecutarà després de "temps" (4) segons.

A continuació, es mostra un exemple:

#Importem el mòdul time
import time
print("Abans de declarar la funció time.sleep")
time.sleep(4)
print("Després de declarar la funció time.sleep")

Si executes el codi previ, notaràs que la segona impressió es fa després de 4 segons. Per tant, pots afegir un retard al teu codi segons calgui. A més, l'argument pot ser un valor decimal per obtenir un retard més precís. Per exemple, si vols un retard de 100 mil·lisegons, és a dir, 0.1 segons, pots fer-ho de la següent manera

import time
time.sleep(0.100)

cta:cloud_so

Exemple de sleep a Python

A continuació, veiem aquest exemple de la funció time sleep de Python:

import time
inicio = time.time()
for i in range(10):
    print(i)
    #Fent una pausa de 2 segons
    time.sleep(2)
fin = time.time()
temps_transcorregut = fi - inici
print(f"Temps transcorregut = {temps_transcorregut:.2f} segons")

Sortida:

0
1
2
3
4
5
6
7
8
9
Temps transcorregut = 20.02 segons

El temps transcorregut és superior a 20 perquè cada cop que s'executa el bucle for, l'execució s'atura durant 2 segons. El temps extra es deu al temps d'execució del programa, la programació de fils del sistema operatiu, etc.

Establir diferents temps de retard amb sleep()

De vegades, pot resultar convenient posposar l'execució amb diferents intervals de temps. Per aconseguir-ho, es pot dur a terme de la manera següent:

import time
for i in [0.5, 0.1, 1, 2]:
   print(f"Esperant {i} segons")
time.sleep(i)

Sortida:

Esperant 0.5 segons
Esperant 0.1 segons
Esperant 1 segons
Esperant 2 segons

cta:cloud_app_swpanel_smart_d5

Python thread sleep

La funció sleep() de Python és essencial per a la programació multifil. A continuació, es presenta un exemple senzill que demostra com la funció sleep de Python atura l'execució del fil actual en un entorn de programació multifil.

import time
from threading import Thread

class Trabajador(Thread):
def run(self):
    for x in range(0, 11):
        print(x)
        time.sleep(1)    

class Mesero(Thread):
def run(self):
    for x in range(100, 103):
        print(x)
        time.sleep(5)

print("Iniciant el fil del Treballador")
Treballador().start()
print("Iniciant el fil del Mesero")
Mesero().start()
print("Fet")

Sortida:

Iniciant el fil del Treballador
0
Iniciant el fil del Mesero
100
Fet
1
2
3
4
5
101
6
7
8
9
10
102

A la sortida de l'execució es pot observar clarament que només els fils estan sent detinguts a l'execució i no tot el programa a causa de la funció sleep de Python.

cta:hosting

i