Конкатенация строк в python в многострочном
У меня есть некоторые строки, чтобы быть конкатенатными, и результирующая строка будет довольно длинной. У меня также есть некоторые переменные, которые можно объединить.
Как я могу объединить обе строки и переменные, чтобы результат был многострочной строкой?
Следующий код вызывает ошибку.
str = "This is a line" +
str1 +
"This is line 2" +
str2 +
"This is line 3" ;
Я тоже это пробовал
str = "This is a line" \
str1 \
"This is line 2" \
str2 \
"This is line 3" ;
Пожалуйста, предложите способ сделать это.
Ответы
Ответ 1
Есть несколько способов. Простое решение - добавить скобки:
strz = ("This is a line" +
str1 +
"This is line 2" +
str2 +
"This is line 3")
Если вы хотите, чтобы каждая строка была отдельной строкой, вы можете добавить символы новой строки:
strz = ("This is a line\n" +
str1 + "\n" +
"This is line 2\n" +
str2 + "\n" +
"This is line 3\n")
Ответ 2
Python не php, и вам не нужно ставить $
перед именем переменной.
a_str = """This is a line
{str1}
This is line 2
{str2}
This is line 3""".format(str1="blabla", str2="blablabla2")
Ответ 3
Я бы добавил все, что мне нужно, чтобы объединиться в список, а затем присоединить его к разрыву строки.
my_str = '\n'.join(['string1', variable1, 'string2', variable2])
Ответ 4
Python 3: отформатированные строки
Начиная с Python 3.6 вы можете использовать так называемые "отформатированные строки" (или "f строки"), чтобы легко вставлять переменные в ваши строки. Просто добавьте f
перед строкой и напишите переменную внутри фигурных скобок ({}
) следующим образом:
>>> name = "John Doe"
>>> f"Hello {name}"
'Hello John Doe'
Чтобы разделить длинную строку на несколько строк, заключите части в скобки (()
) или используйте многострочную строку (строка, заключенная в три кавычки """
или '''
вместо одной).
1. Скобки
С круглыми скобками вокруг ваших строк вы можете даже объединить их без необходимости знака +
между:
a_str = (f"This is a line \n{str1}\n"
f"This is line 2 \n{str2}\n"
"This is line 3") # no variable here, so no leading f
Полезно знать: если в строке нет переменной, нет необходимости в ведущем f
для этой строки.
Полезно знать: вы можете архивировать один и тот же результат с помощью обратной косой черты (\
) в конце каждой строки вместо окружающих скобок, но в соответствии с PEP8 вы должны предпочесть скобки для продолжения строки:
Длинные строки можно разбить на несколько строк, заключив выражения в скобки. Их следует использовать вместо использования обратной косой черты для продолжения строки.
2. Многострочная строка
В многострочных строках вам не нужно явно вставлять \n
, Python позаботится об этом за вас:
a_str = f"""This is a line
{str1}
This is line 2
{str2}
This is line 3"""
Полезно знать: просто убедитесь, что вы правильно выровняли свой код, иначе у вас будет начальный пробел перед каждой строкой.
Кстати, вы не должны вызывать вашу переменную str
потому что это имя самого типа данных.
Источники для форматированных строк: