2017-02-01 4 views
-1

Angenommen wir eine Reihe von dieser Form haben wollen:Schreiben mehrzeilige Text in einem String

a b c 
d e f 
g h i 

Ich habe keinen Zugriff auf alle Linien auf einmal und ich sie eins nach dem anderen in den verschiedenen Teilen mein Code. Also, ich möchte eine Zeichenfolge haben und die Zeichenfolge aktualisieren, wenn ich eine neue Zeile habe, um dort zu schreiben.

kann ich jede Zeile in einer Zeichenfolge schreiben, aber wenn ich „\ n“ verwenden, um die nächste Zeile wie diese

str = "a b c" + "\n" + "d e f" + "\n" + "g h i" 
str 

dieser ist der Ausgang zu gehen:

'a b c\nd e f\ng h i' 

Jede Idee für die Ausgabe richtig machen?

+2

Können Sie Ihre Frage bearbeiten, um den Code zu teilen, der nicht funktioniert? – nbryans

+4

define "es funktioniert nicht" – njzk2

+0

Zeigen Sie uns den nicht funktionierenden Code und teilen Sie uns mit, was Sie gehofft haben. – user2357112

Antwort

1

Wenn Sie einen Variablennamen in die Python-Shell eingeben, wird der Wert dieser Variablen zurückgegeben. In Ihrem Fall ist der Wert von str eingebettet \n darin. (Wie Sie aus der Art und Weise wissen, wie Sie es verwenden, kann eine Zeichenfolge eine beliebige Anzahl von Zeilenumbrüchen enthalten.) Die Shell zeigt den Rohwert der Zeichenfolge an.

Wenn Sie jedoch etwas mit dieser Zeichenfolge tun, sehen Sie, dass sich die neuen Zeilen so verhalten, wie Sie es erwarten.

Zum Beispiel gibt print(str) die Zeichenfolge aus, die so formatiert ist, wie Sie es erwarten.

Ähnlich

with open("myfile.txt", "w") as myfile: 
    myfile.write(str) 

wird eine Datei myfile.txt mit den drei Linien genannt produzieren, die Sie darin sehen wollen.

2

Wenn Sie nur versuchen, es zu drucken, scheint dies für mich zu arbeiten.

print("a b c \nd e f \ng h i") 

Hoffe, dass hilft.

1

Einfache Lösung ist drei Anführungszeichen.

string="""a b c 
d e f 
g h i""" 

print(string) 
Verwandte Themen