Python-Sleep-Funktion: So fügen Sie Verzögerungen zum Code hinzu

In diesem Tutorial erfahren Sie, wie Sie die Funktion sleep () aus dem integrierten Zeitmodul von Python verwenden, um dem Code Zeitverzögerungen hinzuzufügen.
Wenn Sie ein einfaches Python-Programm ausführen, erfolgt die Codeausführung sequenzially– eine stateSatz nach dem anderen –ohne jede Zeitverzögerung. In einigen Fällen müssen Sie jedoch möglicherweise die Ausführung von Code verzögern. Das sleep()
Die Funktion aus dem in Python integrierten Zeitmodul hilft Ihnen dabei.
In diesem Tutorial lernen Sie die Syntax der Verwendung von sleep()
Funktion in Python und mehrere Beispiele, um zu verstehen, wie es funktioniert. Lass uns anfangen!
Syntax von Python time.sleep()
Der time
Das in die Python-Standardbibliothek integrierte Modul bietet mehrere nützliche Zeit-related Funktionen. Importieren Sie als ersten Schritt die time
Modul in Ihre Arbeitsumgebung:
import time
Da die sleep()
Funktion ist Teil der time
Modul können Sie jetzt mit der folgenden allgemeinen Syntax darauf zugreifen und es verwenden:
time.sleep(n)
Hier n
ist die Anzahl von Sekunden schlafen. Es kann eine ganze Zahl oder ein Wert sein floating-Punktnummer.
Manchmal kann die erforderliche Verzögerung einige Millisekunden betragen. In diesen Fällen können Sie die Dauer in Millisekunden in Sekunden umrechnen und im Aufruf der Sleep-Funktion verwenden. Wenn Sie beispielsweise eine Verzögerung von 100 Millisekunden einführen möchten, können Sie sie mit 0.1 Sekunden angeben: time.sleep(0.1)
.
▶ Sie können auch nur die importieren sleep
Funktion von der time
Modul:
from time import sleep
Wenn Sie die obige Methode zum Importieren verwenden, können Sie anschließend die aufrufen sleep()
Funktion direkt – ohne Verwendung time.sleep()
.
Nun, da Sie die Syntax von Python gelernt haben sleep()
Funktion, lassen Sie uns Beispiele codieren, um die Funktion in Aktion zu sehen. Sie können die in diesem Tutorial verwendeten Python-Skripts von herunterladen Python-Schlaf Ordner in diesem GitHub-Repo. 👩🏽💻
Codeausführung mit sleep() verzögern
Als erstes Beispiel verwenden wir die Sleep-Funktion, um die Ausführung eines einfachen Python-Programms zu verzögern.

Im folgenden Codeausschnitt:
- Der Erste
print()
stateDie Ausführung erfolgt unverzüglich. - Wir führen dann eine Verzögerung von 5 Sekunden mit ein
sleep()
Funktion. - Der zweite
print()
stateDer Vorgang wird erst ausgeführt, nachdem der Schlafvorgang abgeschlossen ist.
# /python-sleep/simple_example.py
import time
print("Print now")
time.sleep(5)
print("Print after sleeping for 5 seconds")
Führen Sie jetzt die simple_example.py
Datei und beobachten Sie die Ausgabe:
$ python3 simple_example.py
Fügen Sie einem Codeblock verschiedene Verzögerungen hinzu
In der prevIn diesem Beispiel haben wir eine feste Verzögerung von 5 Sekunden zwischen der Ausführung von zwei eingeführt print()
stategen. Als nächstes programmieren wir ein weiteres Beispiel, um unterschiedliche Verzögerungszeiten beim Durchlaufen einer Iterable einzuführen.
In diesem Beispiel möchten wir Folgendes tun:
- Durchlaufen Sie einen Satz, greifen Sie auf jedes Wort zu und drucken Sie es aus.
- Nachdem wir jedes Wort ausgedruckt haben, möchten wir eine bestimmte Zeit warten, bevor wir das nächste Wort im Satz ausgeben.
Looping durch eine Reihe von Strings
Betrachten Sie die Schnur, sentence
. Es handelt sich um eine Zeichenfolge, in der jedes Wort eine Zeichenfolge darstelltself.
Wenn wir die Zeichenfolge durchlaufen, erhalten wir jedes Zeichen wie gezeigt:
>>> sentence = "How long will this take?"
>>> for char in sentence:
... print(char)
# Output (truncated for readability)
H
o
w
.
.
.
t
a
k
e
?
Aber das wollen wir nicht. Wir möchten den Satz durchlaufen und auf jedes Wort zugreifen. Dazu können wir die anrufen split()
Methode auf der sentence
Schnur. Dadurch wird eine Liste von Zeichenfolgen zurückgegeben, die durch Aufteilen von erhalten werden sentence
Zeichenfolge – an alle Vorkommen von Leerzeichen.
>>> sentence.split()
['How', 'long', 'will', 'this', 'take?']
>>> for word in sentence.split():
... print(word)
# Output
How
long
will
this
take?
Iterables mit unterschiedlichen Verzögerungen durchlaufen
Lasst uns revSehen Sie sich das Beispiel an:
sentence
ist die Zeichenfolge, die wir durchlaufen möchten, um auf jedes Wort zuzugreifen.delay_times
ist die Liste der Verzögerungszeiten, die wir als Argument für verwendensleep()
Funktion bei jedem Durchlauf durch die Schleife.
Hier möchten wir gleichzeitigneoNormalerweise durchlaufen zwei Listen: die delay_times
list und die Liste der Strings, die durch Aufteilen der erhalten werden sentence
Schnur. Du kannst den ... benutzen zip()
Funktion, um diese parallele Iteration durchzuführen.
Die Python-zip()-Funktion: zip(list1, list2) gibt einen Iterator von Tupeln zurück, wobei jedes Tupel das Element am Index i in list1 und list2 enthält.
# /python-sleep/delay_times.py
import time
sleep_times = [3,4,1.5,2,0.75]
sentence = "How long will this take?"
for sleep_time,word in zip(sleep_times,sentence.split()):
print(word)
time.sleep(sleep_time)
Ohne die Schlaffunktion würde die Steuerung sofort erfolgenateFahren Sie einfach mit der nächsten Iteration fort. Da wir eine Verzögerung eingeführt haben, erfolgt der nächste Schleifendurchlauf erst, nachdem der Schlafvorgang abgeschlossen ist.
Jetzt lauf delay_times.py
und beobachte die Ausgabe:
$ python3 delay_times.py
Die nachfolgenden Wörter des Strings werden zeitverzögert ausgedruckt. Die Verzögerung nach dem Ausdrucken des Wortes am Index i
in der Zeichenfolge ist die Zahl am Index i
der delay_times
Liste.
Countdown-Timer in Python
Lassen Sie uns als nächstes Beispiel einen einfachen Countdown-Timer in Python codieren.

Lassen Sie uns eine Funktion definieren countDown()
:
# /python-sleep/countdown.py
import time
def countDown(n):
for i in range(n,-1,-1):
if i==0:
print("Ready to go!")
else:
print(i)
time.sleep(1)
Als nächstes wollen wir die Definition von parsen countDown()
Funktion:
- Die Funktion übernimmt eine Zahl
n
als Argument und zählt herunter bis zero beginnend mit dieser Nummern
. - Wir verwenden time.sleep(1), um eine Verzögerung von einer Sekunde zwischen den Zählungen zu erreichen.
- Wenn die Zählung 0 erreicht, druckt die Funktion „Ready to go!“ aus.
🎯 Um den Countdown-Vorgang zu erreichen, haben wir die verwendet
range()
Funktion mit einem negativen Schrittwert von -1.range(n, -1, -1)
wird uns helfen, den Zahlenbereich in n, n – 1, n – 2 usw. zu durchlaufen zero. Denken Sie daran, dass der Endpunkt bei Verwendung von standardmäßig ausgeschlossen istrange()
Funktion.
Als Nächstes fügen wir einen Anruf hinzu countDown()
Funktion mit 5 als Argument.
countDown(5)
Führen Sie nun das Skript aus countdown.py
und sehen die countDown
Funktion in Aktion!
$ python3 countdown.py
Sleep-Funktion im Multithreading
Python einfädeln Modul bietet außer-box Multithreading-Fähigkeiten. In Python stellt die Global Interpreter Lock oder GIL sicher, dass zu jedem Zeitpunkt nur ein aktiver Thread ausgeführt wird.

Bei E/A-Vorgängen und Wartevorgängen wie z processOder Sie können die Ausführung des aktuellen Threads unterbrechen und zu einem anderen wartenden Thread wechseln.
Um zu verstehen, wie das funktioniert, nehmen wir ein Beispiel.
Erstellen und Ausführen von Threads in Python
Betrachten Sie die folgenden Funktionen, func1()
, func2()
und func3()
. Sie durchlaufen eine Reihe von Zahlen und drucken sie aus. Darauf folgt bei jedem Durchlauf durch die Schleife ein Schlafvorgang für eine bestimmte Anzahl von Sekunden. Wir haben für jede Funktion unterschiedliche Verzögerungszeiten verwendet, um besser zu verstehen, wie die Ausführung zwischen Threads wechselt concurvermietet.
import time
def func1():
for i in range(5):
print(f"Running t1, print {i}.")
time.sleep(2)
def func2():
for i in range(5):
print(f"Running t2, print {i}.")
time.sleep(1)
def func3():
for i in range(4):
print(f"Running t3, print {i}.")
time.sleep(0.5)
In Python können Sie die Thread()
Konstruktor für Instantiate ein Thread-Objekt. Verwendung der Syntax threading.Thread(target = …, args = …)
CREatesa Thread, der das ausführt target
Funktion mit dem in der angegebenen Argument args
Tupel.
In diesem Beispiel sind die Funktionen func1
, func2
und func3
, nehmen Sie keine Argumente an. Es genügt also, als Ziel nur den Namen der Funktion anzugeben. Dann definieren wir Thread-Objekte, t1
, t2
und t3
mit func1
, func2
und func3
als Ziele bzw.
t1 = threading.Thread(target=func1)
t2 = threading.Thread(target=func2)
t3 = threading.Thread(target=func3)
t1.start()
t2.start()
t3.start()
Hier ist der vollständige Code für das Threading-Beispiel:
# /python-sleep/threads.py
import time
import threading
def func1():
for i in range(5):
print(f"Running t1, print {i}.")
time.sleep(2)
def func2():
for i in range(5):
print(f"Running t2, print {i}.")
time.sleep(1)
def func3():
for i in range(4):
print(f"Running t3, print {i}.")
time.sleep(0.5)
t1 = threading.Thread(target=func1)
t2 = threading.Thread(target=func2)
t3 = threading.Thread(target=func3)
t1.start()
t2.start()
t3.start()
Beobachten Sie die Ausgabe. Die Ausführung wechselt zwischen den drei Threads. Der Faden t3
hat die kürzeste Wartezeit, wird also am wenigsten ausgesetzt. Faden t1
hat die längste Schlafdauer von zwei Sekunden, also ist es der letzte Thread, der die Ausführung beendet.
Um mehr zu erfahren, lesen Sie das Tutorial auf der Grundlagen des Multithreading in Python.
Schlussfolgerung
In diesem Tutorial haben Sie gelernt, wie Sie Python verwenden sleep()
Funktion zum Hinzufügen von Zeitverzögerungen zum Code.
Sie können auf die sleep()
Funktion aus dem eingebauten Zeitmodul, time.sleep()
. Um die Ausführung um n Sekunden zu verzögern, verwenden Sie time.sleep(n)
. Außerdem haben Sie Beispiele für das Verzögern nachfolgender Iterationen in einer Schleife um unterschiedliche Werte, Countdown und Multithreading gesehen.
Sie können nun die erweiterten Funktionen des Zeitmoduls erkunden. Möchte mit d zusammenarbeitenates und Zeiten in Python? Zusätzlich zum Zeitmodul können Sie leverAlter die Funktionalität des dateZeit- und Kalendermodule.
Als nächstes lernen calculate Zeitunterschied in Python.⏰