Python sleep est une fonction qui vous permet de suspendre un programme pendant un moment et d’en reprendre l’exécution sans mo­di­fi­ca­tion. Cette commande simple vous permet par exemple de chro­no­mé­trer des tâches, d’afficher l’heure, de lancer un compte à rebours ou de définir un réveil dans le langage de pro­gram­ma­tion Web.

API de IONOS pour dé­ve­lop­peurs
Gérez vos produits d'hé­ber­ge­ment grâce à notre puissante API
  • En­re­gis­tre­ments DNS
  • Ad­mi­nis­tra­tion SSL
  • Do­cu­men­ta­tion API

Qu’est-ce que Python sleep ?

Python sleep vous permet de mettre votre programme en pause pendant une certaine période, puis de reprendre son exécution au­to­ma­ti­que­ment après l’ex­pi­ra­tion de cette période d’attente. Cela donne aux uti­li­sa­teurs, par exemple, le temps de lire une ins­truc­tion ou vous permet de créer votre propre compteur numérique. Python sleep peut être utilisée con­join­te­ment avec le module time. Si la fonction sleep est re­la­ti­ve­ment facile à con­fi­gu­rer et à utiliser, elle permet d’élaborer des processus même complexes quand elle est utilisée avec l’ins­truc­tion Python if-else, la boucle while en Python ou la boucle for en Python. Mis à part la tem­po­ri­sa­tion planifiée, sleep n’in­ter­vient pas dans le programme, con­trai­re­ment à Python break et continue.

Syntaxe et mode de fonc­tion­ne­ment de Python sleep

La syntaxe de Python sleep se présente toujours comme suit :

time.sleep(t)

t cor­res­pond au délai d’attente estimé et est exprimé en secondes dans la plupart des cas.

Python sleep in­ter­rompt gé­né­ra­le­ment un processus défini. Vous devez donc d’abord entrer une commande, puis utiliser Python sleep pour insérer une pause avec une plage horaire spé­ci­fique, puis spécifier l’action à effectuer après la pause.

Un exemple simple permet d’illustrer cet usage. Une ligne doit être sortie dans ce code. Ensuite, le programme s’in­ter­rompt pendant cinq secondes, puis renvoie une deuxième ligne. Voici le code cor­res­pon­dant :

import time
print("Cette phrase est sortie immédiatement.")
time.sleep(5)
print("Cette phrase sera sortie cinq secondes plus tard.")

Vous pouvez également attribuer la valeur x à time.sleep pour créer un délai d’attente. Le code approprié se présente comme suit pour une pause d’une minute précise :

import time
wait_time = 60
time.sleep(wait_time)

Vous pouvez également spécifier le délai d’attente en mil­li­se­condes. Il suffit de diviser l’entrée par 1 000 à cet effet. Le code écrit ressemble à ceci :

import time
print("Cette phrase est sortie immédiatement.")
time.sleep(500 / 1000)
print("Cette phrase sera sortie cinq cents millisecondes plus tard.")

Voici comment créer une horloge numérique avec Python sleep

En recourant à une boucle while, courante et abordée très tôt dans la plupart des tutoriels Python, vous pouvez créer une horloge numérique avec Python sleep pour utiliser la fonction d’une toute nouvelle façon. Vous in­ter­ro­gez l’heure actuelle et la générez au format heures, minutes, secondes à cet effet. Vous utilisez ensuite Python sleep pour définir un délai d’une seconde précise et demandez au programme de reformer une boucle. Si vous laissez la boucle continuer sans horaire de fin, vous pouvez ainsi créer une horloge numérique précise en quelques étapes. Voici le code approprié :

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

La sortie cor­res­pond dans ce cas à l’heure anglaise et ressemble à ceci :

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

Si vous ne dé­fi­nis­sez pas de valeur finale, cette in­di­ca­tion de temps se poursuit in­dé­fi­ni­ment. Pour arrêter la boucle infinie, appuyez sur la com­bi­nai­son de touches [Ctrl] + [C].

Créez un minuteur

Python sleep est également un excellent minuteur. Pour régler cinq minutes par exemple, procédez comme suit :

import time
print("Cela commence ici : %s" % time.ctime())
time.sleep(300)
print("Le temps est maintenant écoulé : %s" % time.ctime())

La sortie cor­res­pon­dante se présente comme suit :

Cela commence ici : Wed Dec 14 11:10:14 2022
Le temps est maintenant écoulé : Wed Dec 14 11:15:14 2022

300 secondes, c’est-à-dire cinq minutes, séparent pré­ci­sé­ment les deux sorties.

Un compte à rebours avec Python sleep

Vous pouvez également utiliser la fonction Python sleep si vous voulez compter dans l’ordre inverse. Dans l’exemple suivant, vous créez un compte à rebours de 10 à 0. Le principe est similaire au dernier exemple, mais vous utilisez ici une boucle for.

import time
for i in reversed(range (1, 11)):
print(i)
time.sleep(1)
print("C’est parti !")

Si vous démarrez le programme main­te­nant, il compte les nombres dans l’ordre dé­crois­sant à partir de 10. Une nouvelle valeur est dévoilée chaque seconde. Une fois la boucle parvenue au chiffre 1, le message « C’est parti ! » s’affiche à la place de 0.

Python sleep et le mul­ti­threa­ding

Python sleep permet également d’exécuter plusieurs processus si­mul­ta­nés, c’est-à-dire en mul­ti­threa­ding. Dans cet exemple, deux sorties sont demandées avec deux threads dif­fé­rents sous la forme de boucles for. Python sleep vous permet main­te­nant de contrôler le moment d’exécution de la commande, ce qui permet de struc­tu­rer le programme avec un ordre fixe. Cela fonc­tionne comme suit :

import threading
import time
def first():
    for i in range(5):
        time.sleep(0.5)
        print("Ceci est la première fonction")
def second():
    for i in range(5):
        time.sleep(0.7)
        print("Ceci est la seconde fonction")
t1 = threading.Thread(target = first)
t2 = threading.Thread(target = second)
t1.start()
t2.start()
Aller au menu principal