time.sleep() verhindert die Ausgabe von print()
Verfasst: Dienstag 26. Juni 2012, 16:31
Hallo,
Ich will mit dem folgendem Code ein "Hallo Welt!" so ausgeben, dass es aussieht als würde der Text getippt werden. Hierzu erstelle ich aus dem "Hallo Welt!"-String eine Liste. Jedes Zeichen lasse ich anschließend einzelnd und ohne Zeilenumbruch ausgeben. Im ersten Beispiel scheint time.sleep(.2) jedoch die Ausgabe der einzelnen Buchstaben zu verhindern. Erst nachdem die for-Schleife vollständig durchgelaufen ist, wird das "Hallo Welt!" ausgegeben.
Anscheinend hat dieses Problem mit dem Parameter end='' zu tun. Ohne diesem funktioniert die Ausgabe, so wie gewünscht. Allerdings wird hier natürlich jedes mal ein Zeilenumbruch mit ausgegeben, was aber verhindert werden soll.
Ich verwende übrigens Python 3.2.3. Für jede Hilfe oder Idee bin ich dankbar! 
Ich will mit dem folgendem Code ein "Hallo Welt!" so ausgeben, dass es aussieht als würde der Text getippt werden. Hierzu erstelle ich aus dem "Hallo Welt!"-String eine Liste. Jedes Zeichen lasse ich anschließend einzelnd und ohne Zeilenumbruch ausgeben. Im ersten Beispiel scheint time.sleep(.2) jedoch die Ausgabe der einzelnen Buchstaben zu verhindern. Erst nachdem die for-Schleife vollständig durchgelaufen ist, wird das "Hallo Welt!" ausgegeben.
Anscheinend hat dieses Problem mit dem Parameter end='' zu tun. Ohne diesem funktioniert die Ausgabe, so wie gewünscht. Allerdings wird hier natürlich jedes mal ein Zeilenumbruch mit ausgegeben, was aber verhindert werden soll.
Code: Alles auswählen
#!/usr/bin/env python
import time
for char in list('Hallo Welt!'):
print(char, end='') # mit end='' wird das "Hallo Welt!" erst nach dem Durchlauf der for-Schleife ausgegeben!
time.sleep(.2)
print()
Code: Alles auswählen
#!/usr/bin/env python
import time
for char in list('Hallo Welt!'):
print(char) # ohne end='' als Parameter werden die einzelnen Buchstaben ausgegeben!
time.sleep(.2)
print()