Seite 1 von 1
Kurze Pause
Verfasst: Montag 8. Juni 2026, 10:59
von Kebap
Früher hab ich am C64 im Supermarkt immer aus Spaß einen kurzen Zweizeiler programmiert, der dann da lustige Labyrinthe auf die Bildschirme zauberte.
Wenn ich das in Python probiere, scrollt das viel zu schnell durch. Wie kann ich eine kurze Pause in die Schleife einbauen? Möglichst Hardware-agnostisch?
Also die erste Idee wäre einfach eine sinnlose Schleife hochzählen lassen, aber deren Dauer ist ja vorher gar nicht so einfach zu bemessen.
Code: Alles auswählen
import random
while True:
print(random.choice("/\\"), end="")
Re: Kurze Pause
Verfasst: Montag 8. Juni 2026, 11:10
von Kebap
Ah, ich gebe mir einfach mal selbst die Antwort: Es gibt dafür time.sleep()
Code: Alles auswählen
import random
from time import sleep
while True:
print(random.choice("/\\"), end="")
sleep(0.05)
OK, jetzt pausiert aber die komplette Ausgabe. Sprich, man sieht das Labyrinth erst nach Keyboard Interrupt und nicht sofort Zeichen für Zeichen aufbauen.
Warum? Wie kann ich das heilen?
Nächste Frage: Wieso kann ich Befehle nicht mehr in eine Zeile quetschen? Früher ging das doch mit Doppelpunkt? Jetzt funken Annotationen dazwischen.
Code: Alles auswählen
while True: print(random.choice("/\\"), end="") : sleep(0.05)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: illegal target for annotation
Re: Kurze Pause
Verfasst: Montag 8. Juni 2026, 12:05
von noisefloor
Hallo,
zum letzten Punkt: der 2. Doppelpunkt im Einzeiler ist syntaktisch falsch bzw. da kommt der Fehler her. Schon immer, dass kann so auch früher nicht funktioniert haben. Da muss wenn ein ; hin.
Gruß, noisefloor
Re: Kurze Pause
Verfasst: Montag 8. Juni 2026, 12:14
von imonbln
Du musst statt des zweiten Doppelpunkts ein Semikolon verwenden. Zudem kennt print den Parameter flush, mit dem du dafür sorgst, dass stdout sofort dargestellt wird.
Code: Alles auswählen
while True: print(random.choice("/\\"), end='',flush=True); time.sleep(0.05)
Re: Kurze Pause
Verfasst: Montag 8. Juni 2026, 12:53
von Kebap
Ihr habt Recht. Der Doppelpunkt stammt wohl noch aus BASIC.

Danke auch für den Hinweis auf Flush.
Re: Kurze Pause
Verfasst: Montag 8. Juni 2026, 15:11
von __blackjack__
@Kebap: Das Programm was Du wahrscheinlich meinst ist dieser Klassiker, zu dem es auch ein Buch gibt, das _das_ als Titel hat:
Und / und \ sind da nur ein schlechter Ersatz für die Grafikzeichen im PETSCII-Zeichensatz. Das kann man heute ziemlich Originalgetreu mit Unicode-Zeichen nachstellen. Die beiden diagonalen Linien liegen als Codepoint nämlich auch genau nebeneinander, so dass man den gleichen ”Trick” im Code verwenden kann mit 9585 statt mit 205:
Code: Alles auswählen
import random, time
while True: print(chr(int(9585.5 + random.random())), end="", flush=True); time.sleep(0.02)