Totaler Anfänger: Zeilenumbruch im print

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
MrBrightside
User
Beiträge: 10
Registriert: Dienstag 14. November 2017, 16:01

Guten Abend allerseits,

ich habe nach jahrerlange IT Abstinenz angefangen mir Python selber beizubringen.
Leider scheitere ich bereits deutlich früher als ich befürchtet habe.

Ich habe mich heute hingesetzt und will mal gucken ob ich mithilfe von Tutorials ein TikTakToe Spiel in der Konsole hinkriege.
Ich möchte gerne meine 9 Feldvariablen in 3 Reihen ausgeben.

1 2 3
4 5 6
7 8 9

Jetzt könnte ich natürlich hingehen und folgendes schreiben:

print(field1, field2, field3)
print(field4, field5, field6)
print(field7, field8, field9)

Ich denke doch aber das es da eine einfachere Möglichkeit gibt. Hier also die Frage: Wie kann ich im print einen Zeilenumbruch an der mir gewünschten Stelle erzwingen.
Unglaublicherweise habe ich bisher nichts dazu gefunden und denke mal, das die Frage zu dämlich ist um sie in einem Tutorial eigens zu erwähnen.

Wäre klasse wenn mir einer auf die Sprünge helfen könnte.

Vielen Dank schonmal ;)
Epics
User
Beiträge: 2
Registriert: Mittwoch 23. August 2017, 14:28
Wohnort: Austria

Hallo,

um einen Zeilenumbruch in einen String zu erreichen könntest du \n verwenden. Also am besten deine Werte in einen String umwandeln und an der gewünschten Stelle ein \n einfügen.

Code: Alles auswählen

print("{} {} {}\n{} {} {}\n{} {} {}".format(field1, field2, field3 , field4, field5, field6, field7, field8, field9))
narpfel
User
Beiträge: 643
Registriert: Freitag 20. Oktober 2017, 16:10

Moin,

Zusätzlich zu dem, was Epics gesagt hat: Durchnummerierte Namen sind quasi immer ein Zeichen dafür, dass man gerade etwas falsch macht und eigentlich eine Datenstruktur (in diesem Fall eine Liste) benutzen möchte. Mal als Beispiel eine zweidimensionale Liste:

Code: Alles auswählen

In [3]: field = [[0] * 3 for _ in range(3)]

In [4]: field
Out[4]: [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

In [5]: print("\n".join(" ".join(str(cell) for cell in line) for line in field))
0 0 0
0 0 0
0 0 0
Benutzeravatar
MrBrightside
User
Beiträge: 10
Registriert: Dienstag 14. November 2017, 16:01

Sauber, herzlichen Dank ihr Beiden.

Da arbeite ich mich mal durch.
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Damit man es sich besser merken kann: das "n" in \n steht für "new line", also neue Zeile.
Antworten