In Entwicklung Letztes Updateated:
Teilen:
Jira-Software ist das Projektmanagement-Tool Nr. 1, das von agilen Teams zum Planen, Verfolgen, Freigeben und Unterstützen großartiger Software verwendet wird.

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 verwenden sleep() 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 Nummer n.
  • 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 ist range() 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.⏰

Teilen:
  • Bala Priya C
    Autor
    Bala Priya ist Entwickler und Techniker writer aus Indien mit über drei Jahren Erfahrung im Bereich des Schreibens technischer Inhalte. Sie teilt ihre Erkenntnisse mit der Entwickler-Community, indem sie technische Tutorials, Anleitungen und mehr verfasst.

Danke an unsere Sponsoren

Weitere großartige Lektüre zum Thema Entwicklung

Treiben Sie Ihr Geschäft an

Einige der Tools und Services, die Ihrem Unternehmen helfen grow.