Display ein countdown für die python-sleep-Funktion
Ich bin mit der Zeit.sleep(10) in meinem Programm. Anzeige des Countdowns in der shell, wenn ich mein Programm?
>>>run_my_program()
tasks done, now sleeping for 10 seconds
und dann will ich es tun 10,9,8,7....
ist das möglich?
- Vielen Dank für all die wundervollen Antworten.
- Verwandte: countdown mit mit Tkinter oder Gtk oder Verdreht oder Asyncio event loops
Du musst angemeldet sein, um einen Kommentar abzugeben.
konnte man immer tun
Diesem snippet hat die etwas lästige Funktion, die jeder Zahl wird gedruckt auf ein newline. Um dies zu vermeiden, können Sie
Können Sie einen count-down-Funktion wie:
Carriage return
\r
und das Komma,
halten, den Druck in der gleichen Zeile (wobei eine Zeile für jeden countdown-Wert)Als die Anzahl der Sekunden verringert, die pad_str wird sicherstellen, dass die Letzte Zeile wird mit Leerzeichen überschrieben, anstatt die letzten Zeichen(s) hinter der Ausgabe verkürzt.
Den endgültigen Druck überschreibt die Letzte status Nachricht mit done Meldung und Schritten dem Ausgang, so gibt es Beweise für die Verzögerung.
print '%s for the next %d seconds %s\r' % (msg, i, pad_str),
sollte geändert werden, umsys.stdout.write( '%s for the next %d seconds %s\r' % (msg, i, pad_str),)
.Dies ist der beste Weg, um ein timer in der Konsole für Python 3.x:
Dieser schreibt über die Vorherige Zeile auf jedem Zyklus.
Dies ist etwas, das ich gelernt habe, eine meiner ersten python-Unterricht spielten wir mit ["/","-","|","\","|"] aber das Prinzip ist das gleiche:
Sicher, schreib einfach eine Schleife, die druckt 10 minus die iteration Zähler, dann haben Sie es schlafen 1 Sekunde in jeder iteration, und führen Sie für 10 Wiederholungen. Oder, um noch flexibler:
time.sleep()
zurückgeben kann früher, wenn der Schlaf unterbrochen wird, durch ein signal oder später (kommt auf die Terminierung von anderen Prozessen/threads, die von OS/die Dolmetscherin).Zur Verbesserung der Genauigkeit über mehrere Iterationen zu vermeiden drift für eine große Anzahl von Iterationen, der countdown kann gesperrt werden mit der Uhr:
Hier ist, die ich gemacht habe:
Am Ende, wenn Sie und ein anderes Sie können einen alarm setzen oder was auch immer.