2015-12-15 25 views
11

Ich habe einige Zeichenfolgen zu verketten und die resultierende Zeichenfolge wird ziemlich lang sein. Ich habe auch einige Variablen zu verketten.Verketten von Zeichenfolgen in Python in Multilinie

Wie kann ich sowohl Strings als auch Variablen kombinieren, so dass das Ergebnis eine mehrzeilige Zeichenfolge wäre?

Der folgende Code löst einen Fehler aus.

str = "This is a line" + 
     str1 + 
     "This is line 2" + 
     str2 + 
     "This is line 3" ; 

Ich habe versucht, dies zu

str = "This is a line" \ 
     str1 \ 
     "This is line 2" \ 
     str2 \ 
     "This is line 3" ; 

Bitte einen Weg vorschlagen, dies zu tun.

+1

warum Sie '$' Zeichen vor Ihrem haben Strings ... das sind keine gültigen Python-Variablennamen. –

+0

Welchen Python verwendest du mit 2.x oder 3? – ipinak

+0

@ipinak python 2.7.6 – user3290349

Antwort

17

Es gibt mehrere Möglichkeiten. Eine einfache Lösung ist Klammern hinzuzufügen:

strz = ("This is a line" + 
     str1 + 
     "This is line 2" + 
     str2 + 
     "This is line 3") 

Wenn Sie jede „Linie“ auf einer separaten Zeile können Sie Zeilenumbrüche hinzufügen:

strz = ("This is a line\n" + 
     str1 + "\n" + 
     "This is line 2\n" + 
     str2 + "\n" + 
     "This is line 3\n") 
1

Ich würde alles hinzufügen, was ich zu einer Liste verketten muss und dann bei einem Zeilenumbruch beitreten.

my_str = '\n'.join(['string1', variable1, 'string2', variable2]) 
+1

Das würde meinen Zweck nicht lösen.Weil ich schreibe a Skript, das einen Variablennamen nimmt und eine Getter- und Setter-Methode für es generiert. Ich möchte im sae-Format schreiben. – user3290349

+1

@ user3290349 Dies löst die Frage, die Sie gestellt haben, und bietet Platz für die Erweiterung. Wenn Sie möchten, dass ein anderer Zweck gelöst wird, stellen Sie sicher, dass der Zweck in Ihrer Frage angegeben ist. –

+0

@ user3290349 in Python gibt es keine Notwendigkeit für Getter und Setter. Ich schlage vor, einen Blick auf Pythons '@ property'-Dekorateur zu werfen. https://docs.python.org/2/library/functions.html#property –

5

Python ist nicht PHP und Sie haben keine Notwendigkeit, $ vor einem Variablennamen zu setzen.

a_str = """This is a line 
     {str1} 
     This is line 2 
     {str2} 
     This is line 3""".format(str1="blabla", str2="blablabla2") 
+0

Dies wird die führenden Leerzeichen in jeder Zeile enthalten, die sich vom aktuellen Code unterscheiden. –

+0

Ich habe das nicht berücksichtigt, da der angegebene Code nicht funktioniert hat. –

+0

Btw ... das Entfernen der führenden Leerzeichen wird wie jede Zeile in Spalte 1 gestartet –

Verwandte Themen