Ich versuche, eine while-Schleife nur unter einer definierten Zeit wie dieser auszuführen, aber die while-Schleife setzt ihre Ausführung fort, selbst wenn wir über dem definierten Limit sind:
%Vor%Wie kann die Schleife gestoppt werden, sobald wir das Limit überschritten haben?
Danke
Sie aktualisieren den Wert von minute
innerhalb der while-Schleife nicht richtig. Sie sollten den Wert von now
in Schleife neu berechnen und dann die neue now.minute
auf minute
zuweisen.
Sie müssen die Zeit in Ihrer Schleife neu bestimmen. Die Variable minute
ist statisch , sie wird nicht aktualisiert, um die Zeit zu ändern.
Wenn Sie für eine bestimmte Menge Zeit eine Schleife machen möchten, beginnen Sie stattdessen mit time.time()
und berechnen dann die verstrichene Zeit:
druckt 'test' alle 5 Sekunden für 5 Minuten (300 Sekunden).
Sie können das natürlich auch mit datetime
-Objekten machen, aber der time.time()
-Aufruf ist etwas einfacher zu handhaben.
Um bis zu wiederholen, kann datetime
wie folgt verwendet werden:
Beachten Sie, dass die Schleife jedes Mal eine Methode aufrufen muss, um zu bestimmen, wie die aktuelle Zeit ist.
Der Vorschlag der Schleife sollte datetime.datetime.now().minute - minute < 46
lauten und der Rumpf der Schleife sollte nicht minute
aktualisieren.
Tags und Links python