2015-12-15 26 views
11

Birbirine bağlı dizelerim var ve sonuçta ortaya çıkan dize oldukça uzun. Ayrıca, birleştirilecek bazı değişkenler de var.Python'daki dizeleri çok satırlı olarak birleştirin

Her iki dizeyi ve değişkenleri nasıl birleştirebilirim, sonuç çok satırlı bir dize olur?

Aşağıdaki kod hata veriyor.

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

Bu çok

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

bunu yapmanın bir yolu önermek Lütfen çalıştılar.

+1

senin dizeler ... bunlar geçerli bir python değişken ismi değil. –

+0

Hangi python'u 2.x veya 3 kullanıyorsunuz? – ipinak

+0

@ipinak python 2.7.6 – user3290349

cevap

17

Çeşitli yollar vardır. Eğer ayrı bir satırda her bir "çizgi" isterseniz

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

ekleyebilir satır karakterlerini: basit bir çözüm parantez eklemektir sen önünde `$` karakter var neden

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

Bir listeye birleştirmek için ihtiyacım olan her şeyi eklerim ve sonra bir satır sonu üzerinde birleştiririm.

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

Bu benim amacımı çözmez. değişken bir isim alacak ve bunun için bir getter ve setter yöntemi oluşturacak betik. Ben sae formatında yazmak istiyorum. – user3290349

+1

@ user3290349 bu, sorduğunuz soruyu çözer ve genişleme için alanı vardır. Farklı bir amacı çözmek istiyorsanız, sorunuzun amacının belirtildiğinden emin olun. Python'da –

+0

@ user3290349, alıcılara ve ayarlayıcılara gerek yoktur. Python'un 'mülk 'dekoratörüne bir göz atmanızı öneriyorum. https://docs.python.org/2/library/functions.html#property –

5

Python php değildir ve değişken adından önce $ koymak hiç ihtiyacım yok.

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

Bu, her bir satırda, geçerli kodun yaptıklarından farklı olan öncü boşlukları içerecektir. –

+0

Verilen ilk kodun işe yaramadığı için bunu dikkate almadım. –

+0

Btw ... lider whitespaces kaldırmak col 1 satırındaki her satır –