Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

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

Python-Sleep-Funktion
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

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 der Reihe nach—eine Aussage nach der 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 of Python time.sleep()

Die time -Modul, das in die Python-Standardbibliothek integriert ist, bietet mehrere nützliche zeitbezogene Funktionen. Importieren Sie im 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 Ganzzahl oder eine Fließkommazahl sein.

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. 👩🏽‍💻

Delay Code Execution with sleep() 

Als erstes Beispiel verwenden wir die Sleep-Funktion, um die Ausführung eines einfachen Python-Programms zu verzögern.

Code-Ausführung verzögern

Im folgenden Code-Schnipsel:

  • Der Erste print() Anweisung wird ohne Verzögerung ausgeführt.
  • Wir führen dann eine Verzögerung von 5 Sekunden mit ein sleep() Funktion. 
  • Der zweite print() -Anweisung wird erst ausgeführt, nachdem der Sleep-Vorgang beendet 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
YouTube-Video

Add Different Delays to a Code Block

Im vorherigen Beispiel haben wir eine feste Verzögerung von 5 Sekunden zwischen der Ausführung von zwei eingeführt print() Aussagen. Lassen Sie uns als Nächstes ein weiteres Beispiel codieren, um unterschiedliche Verzögerungszeiten einzuführen, wenn eine iterierbare Schleife durchlaufen wird.

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 ist eine Zeichenfolge, bei der jedes Wort eine Zeichenfolge für sich ist.

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

Betrachten wir das Beispiel noch einmal:

  • 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 zwei Listen gleichzeitig durchlaufen: 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 Sleep-Funktion würde die Steuerung sofort mit der nächsten Iteration fortfahren. Da wir eine Verzögerung eingeführt haben, findet der nächste Durchlauf durch die Schleife erst statt, nachdem die Schlafoperation 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.

YouTube-Video

Countdown Timer in Python

Lassen Sie uns als nächstes Beispiel einen einfachen Countdown-Timer in Python codieren.

Countdown-Timer-in-Python

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 von dieser Zahl ausgehend bis auf Null herunter 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) hilft uns, den Zahlenbereich in n, n – 1, n – 2 usw. bis zu Null zu durchlaufen. 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
YouTube-Video

Sleep Function in Multithreading

Python einfädeln -Modul bietet sofort einsatzbereite Multithreading-Funktionen. In Python sorgt der Global Interpreter Lock oder GIL dafür, dass zu jedem Zeitpunkt nur ein aktiver Thread läuft.

python-sleep-3

Während E/A-Operationen und Warteoperationen, wie beispielsweise Schlaf, kann der Prozessor jedoch die Ausführung des aktuellen Threads aussetzen 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 ein Sleep-Vorgang – für eine bestimmte Anzahl von Sekunden – bei jedem Durchlauf durch die Schleife. Wir haben für jede der Funktionen unterschiedliche Verzögerungszeiten verwendet, um besser zu verstehen, wie die Ausführung gleichzeitig zwischen Threads wechselt.

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 zum Instanziieren eines Thread-Objekts. Verwendung der Syntax threading.Thread(target = …, args = …) erstellt einen Thread, der die 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.

YouTube-Video

Um mehr zu erfahren, lesen Sie das Tutorial auf der Grundlagen des Multithreading in Python.

Fazit

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 jetzt erweiterte Funktionen des Zeitmoduls erkunden. Möchten Sie mit Datums- und Uhrzeitangaben in Python arbeiten? Zusätzlich zum Zeitmodul können Sie die Funktionalität der Datetime- und Kalendermodule nutzen.

Als nächstes lernen Zeitunterschied in Python berechnen.⏰

Danke an unsere Sponsoren
Weitere großartige Lektüre zum Thema Entwicklung
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder