Python sleep : pour suspendre des programmes

Python sleep est une fonction qui vous permet de suspendre un programme pendant un moment et d’en reprendre l’exécution sans modification. Cette commande simple vous permet par exemple de chronométrer des tâches, d’afficher l’heure, de lancer un compte à rebours ou de définir un réveil dans le langage de programmation Web.

API de IONOS pour développeurs
Gérez vos produits d'hébergement grâce à notre puissante API
  • Enregistrements DNS
  • Administration SSL
  • Documentation 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 automatiquement après l’expiration de cette période d’attente. Cela donne aux utilisateurs, par exemple, le temps de lire une instruction ou vous permet de créer votre propre compteur numérique. Python sleep peut être utilisée conjointement avec le module time. Si la fonction sleep est relativement facile à configurer et à utiliser, elle permet d’élaborer des processus même complexes quand elle est utilisée avec l’instruction Python if-else, la boucle while en Python ou la boucle for en Python. Mis à part la temporisation planifiée, sleep n’intervient pas dans le programme, contrairement à Python break et continue.

Syntaxe et mode de fonctionnement de Python sleep

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

time.sleep(t)

t correspond au délai d’attente estimé et est exprimé en secondes dans la plupart des cas.

Python sleep interrompt généralement 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écifique, 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’interrompt pendant cinq secondes, puis renvoie une deuxième ligne. Voici le code correspondant :

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 millisecondes. 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 interrogez 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 correspond 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éfinissez pas de valeur finale, cette indication de temps se poursuit indéfiniment. Pour arrêter la boucle infinie, appuyez sur la combinaison 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 correspondante 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écisé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 maintenant, il compte les nombres dans l’ordre décroissant à 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 multithreading

Python sleep permet également d’exécuter plusieurs processus simultanés, c’est-à-dire en multithreading. Dans cet exemple, deux sorties sont demandées avec deux threads différents sous la forme de boucles for. Python sleep vous permet maintenant de contrôler le moment d’exécution de la commande, ce qui permet de structurer le programme avec un ordre fixe. Cela fonctionne 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()
Cet article vous a-t-il été utile ?
Page top