2016-04-12 4 views
0

Ich muss auf stdout drucken (aber nächster Schritt ist in Datei drucken) eine Reihe von Zeichenfolgen, die die Informationen zum Aufbau einer Form enthalten. die for-Schleife Unten:Python: Drucken Array von Zeichenfolgen, um Zeile für Zeile zu stdout

for i in range(0, xMax): 
    for j in range(0, yMax): 
     print arena_shape[ j + i*yMax] 
    print('\r') 

Das Array arena_shape [] die Zeichen enthält, die verbauten einem 2D Bild, Figur mit i = [0, Xmax] Zeilen und j = [0, yMax] Spalten. Ich erwarte, dass der Ausgang sein:

i=0 ---------- ------ 
i=1 |     | 
     |     | 
     |     | 
     |     | 
     |     | 
     |     | 
i=xMax -------------------- 

stattdessen die erste Zeile (i=0, j=[0,yMax]) in „horizontal“ zu erhalten, wie ich erwarten würde, habe ich es in vertikal angezeigt, auch wenn ich Python sagen nur \r wenn row i ändern und nicht bei jedem column j

i=0 - 
    - 
    - 
    - 
    - 
    - 
    - 
    - 
    - 
    - 




    - 
    - 
    - 
    - 
    - 
    - 

ich verstehe nicht, warum dies nicht Zeile nach der print("\r") Anweisung ändert. Vielen Dank im Voraus für die Hilfe.

+0

Mögliche Duplikat [Wie ohne Newline in Python drucken oder Leerzeichen?] (http://stackoverflow.com/questions/493386/how-to-print-in-python-without-newline-or-space) – Chiel

+0

Was genau ist das Problem? Um in Python ohne Zeilenumbruch zu drucken, genügt ein Komma (',') am Ende der Zeile. – kirkpatt

+0

Sorry, mir war nicht klar, ich habe die Frage bearbeitet. – user123892

Antwort

2

Die Funktion print in Python druckt immer in einer neuen Zeile. Wenn Sie möchten, ohne eine neue Zeile drucken i Speicherung vorschlagen, was Sie in einer temporären Variablen drucken müssen und drucken nur, wenn Sie die innere for Schleife verlassen

for i in range(0, xMax): 
    temp_variable = '' 
    for j in range(0, yMax): 
     temp_variable += arena_shape[ j + i*yMax] 
    print temp_variable 
+0

Danke, Problem gelöst! – user123892