2015-12-15 28 views
11

Mam kilka ciągów do połączenia i wynikowy ciąg będzie dość długi. Też mam pewne zmienne, które należy łączyć.Łączenie ciągów znaków w pythonie w wielolinie

Jak mogę połączyć oba ciągi i zmienne tak, aby wynik był ciągiem wieloliniowym?

Poniższy kod powoduje błąd.

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

Próbowałem to zbyt

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

Proszę zaproponować sposób, aby to zrobić.

+1

dlaczego masz '$' znaki przed swój łańcuchy ... te nie są poprawnymi nazwami zmiennych Pythona. –

+0

Który pyton używasz 2.x lub 3? – ipinak

+0

@ipinak python 2.7.6 – user3290349

Odpowiedz

17

Istnieje kilka sposobów. Prostym rozwiązaniem jest dodanie nawiasów:

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

Jeśli chcesz, aby każdy „linia” na osobnej linii można dodawać znaki nowego wiersza:

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

Dodałbym wszystko, czego potrzebuję, aby połączyć się z listą, a następnie dołączyć do niej w przerwie liniowej.

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

To nie rozwiązałoby mojego celu. Ponieważ piszę skrypt, do którego przyjmie nazwę zmiennej i wygeneruje dla niej metodę pobierającą i ustawiającą. SO Chciałbym napisać w formacie SAE. – user3290349

+1

@ user3290349 rozwiązuje to pytanie, które zadałeś, i ma miejsce na rozwijanie. Jeśli chcesz rozwiązać inny cel, upewnij się, że ten cel jest określony w pytaniu. –

+0

@ user3290349 w Pythonie nie ma potrzeby dla pobierających i ustawiających. Proponuję rzucić okiem na dekoratora '@ property' Pythona. https://docs.python.org/2/library/functions.html#property –

5

Python nie jest php i nie ma potrzeby, aby umieścić $ przed nazwą zmiennej.

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

Obejmuje to wiodące spacje w każdym wierszu, różniące się od bieżącego kodu. –

+0

Nie wziąłem tego pod uwagę, ponieważ podany początkowy kod nie zadziałał. –

+0

Btw ... usuwanie początkowych białych znaków rozpoczyna się od linii na kol. 1 –