2016-07-01 13 views
0

so verwende ich diesen Code-Snippet:Warum druckt mein Programm nur auf eine Zeile anstatt auf eine einzelne Zeile?

def print_slow(str): 
    for letter in str: 
    print letter, 
    time.sleep(.1) 

von diesem Link auf SO: printing slowly (Simulate typing) und wenn passt meine Bedürfnisse. Allerdings ist mein Code so weit dies:

import time 
import random 
import sys 
def print_slow(str): 
    for letter in str: 
    print letter, 
    time.sleep(.5) 
print_slow("MEME QUEST!") 
time.sleep(.5) 
print_slow("BY XXX XXXXX") 

Aber wenn ich diesen Code ausführen, druckt er die beiden Code-Schnipsel auf der gleichen Linie. Gibt es eine Möglichkeit, sie auf separate Zeilen zu setzen?

EDIT: Hinzufügen eines zusätzlichen Druck auf die Funktion print_slow funktioniert, danke.

+1

Entfernen Sie das Komma aus 'Print Letter,'. Das Komma sagt ihm wortwörtlich, dass es die Zeilenumbrüche unterdrückt und weiter auf der gleichen Zeile druckt. – CoryKramer

+0

@CoryKramer: das ist der Punkt, sie * wollen * das Komma, um die Dinge 'langsam' auf einer Zeile zu drucken. Was fehlt, ist ein einfacher 'Print', um den Zeilenumbruch zu schreiben. –

Antwort

2

Sie verpassen eine neue Zeile; normalerweise print gibt das aus, aber nicht, wenn Sie am Ende ein , Komma hinzufügen.

Sie könnten eine zusätzliche leere print zwischen den Anrufen zu print_slow() einfügen schreiben:

def print_slow(str): 
    for letter in str: 
     print letter, 
     time.sleep(.1) 
    print 

Eine leere print schreibt das:

print_slow("MEME QUEST!") 
print 
time.sleep(.5) 
print_slow("BY XXX XXXXX") 
print 

Sie nur, dass zusätzliche print Aussage zur Funktion hinzufügen könnte fehlende Zeilenumbrüche

Alternativ fügen Sie ein \n Newline-Zeichen an den Text zu drucken:

print_slow("MEME QUEST!\n") 
time.sleep(.5) 
print_slow("BY XXX XXXXX\n") 

aber berücksichtigen, in der gleiche 0,1 Sekunden Verzögerung gilt auch das Newline zu schreiben.

0

Sie könnten nur einfach ein Newline-Zeichen hinzufügen

print_slow("MEME QUEST!\n") 
0

Das Komma nach dem

print letter, 

Anweisung unterdrückt es von einer neuen Zeile zu drucken.

Versuchen

import time 

def print_slow(string): 
     for letter in string: 
      print letter, 
      time.sleep(.1) 
     print '\n' 

print_slow("hello") 
print_slow("world") 

Ich bin sicher, dass es ein sauberer Weg, dies zu implementieren, aber dies sollte Ihr Problem lösen.