У меня есть несколько строк для объединения, и результирующая строка будет довольно длинной. У меня также есть несколько переменных, которые нужно объединить.
Как можно объединить строки и переменные, чтобы в результате получилась многострочная строка?
Следующий код вызывает ошибку.
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" ;
Пожалуйста, предложите способ сделать это.
4 ответа
Есть несколько способов. Простое решение - добавить круглые скобки:
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")
Python не php, и вам не нужно ставить $
перед именем переменной.
a_str = """This is a line
{str1}
This is line 2
{str2}
This is line 3""".format(str1="blabla", str2="blablabla2")
Я бы добавил все, что мне нужно, чтобы объединить в список, а затем присоединить его к разрыву строки.
my_str = '\n'.join(['string1', variable1, 'string2', variable2])
Решения для Python 3 с использованием форматированных строк
Начиная с Python 3.6 вы можете использовать так называемые «отформатированные строки» (или «f строки»), чтобы легко вставлять переменные в ваши строки. Просто добавьте f
перед строкой и напишите переменную внутри фигурных скобок ({}
) следующим образом:
>>> name = "John Doe"
>>> f"Hello {name}"
'Hello John Doe'
Чтобы разделить длинную строку на несколько строк, окружите части круглыми скобками (()
) или используйте многострочную строку (строку, заключенную в три кавычки {{ X1}} или '''
вместо одного).
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
, потому что это имя самого типа данных.
Источники для форматированных строк:
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.