在 Python 中连接多行字符串

使用括号和加法 + 运算符连接多行的字符串。 括在括号中的表达式可以跨越多行。

string1 = 'www'
string2 = 'zadmei'

result = (string1 +
          string2 +
          '.com')

print(result)  # ?️ bobbyhadz.com

# --------------------------------------

result = (string1 + '\n' +
          string2 + '\n' +
          '.com')

# www
# zadmei
# .com
print(result)

第一个示例将表达式括在括号中以连接多行的字符串。

括在括号中的表达式可以跨越多行。

根据官方 PEP8 风格指南,换行的首选方法是在圆括号、方括号和大括号内使用 Python 的隐含行续行。

该指南不建议使用反斜杠来续行。

如果需要创建多行字符串,还可以在每行末尾添加一个换行符 \n

string1 = 'www'
string2 = 'zadmei'

result = (string1 + '\n' +
          string2 + '\n' +
          '.com')

# www
# zadmei
# .com
print(result)

使用加法运算符时,必须确保两边的值都是字符串。

例如,如果我们呢有一个存储整数的变量,请在使用加法 + 运算符之前将其转换为字符串。

string1 = 'www'
string2 = 'zadmei'
integer = 123

result = (string1 + '\n' +
          string2 + '\n' +
          '.com' + '\n' +
          str(integer))

# www
# zadmei
# .com
# 123
print(result)

加法 + 运算符左右两侧的值需要是兼容类型。

三引号字符串也可用于创建多行字符串。

multiline_string = """\
www
zadmei
com"""

# www
# zadmei
# com
print(multiline_string)

三引号字符串与我们使用单引号或双引号声明的基本字符串非常相似。

但它们也使我们能够:

  • 在同一个字符串中使用单引号和双引号而不转义
  • 定义多行字符串而不添加换行符

或者,我们可以使用格式化的字符串文字。

使用 f 字符串连接多行字符串

使用括号和格式化的字符串文字将字符串连接到多行。 括在括号中的表达式可以跨越多行。

string1 = 'www'
string2 = 'zadmei'

result = (f'{string1}-' +
          f'{string2}-' +
          'com')

print(result)  # ?️ www-zadmei-com

# --------------------------------------

result = f"""{string1}
{string2}
.com"""

# www
# zadmei
# .com
print(result)

格式化字符串文字 f-strings 让我们通过在字符串前加上 f 来在字符串中包含表达式。

var1 = 'fql'
var2 = 'zadmei'

result = f'{var1}{var2}'
print(result)  # ?️ fqlzadmei

确保将表达式用大括号括起来 – {expression}。

如果我们需要创建一个多行字符串来评估变量和表达式,我们还可以声明一个三引号格式的字符串文字。

string1 = 'www'
string2 = 'zadmei'

result = f"""{string1}
{string2}
.com"""

# www
# zadmei
# .com
print(result)

使用三引号字符串时,我们不必明确地在每行末尾添加换行符 \n。

格式化字符串字面值也会自动将值转换为字符串。

string1 = 'fql'
string2 = 'zadmei'
integer = 123

result = f'-> {string1}{string2}{integer}'
print(result)  # ?️ -> fqlzadmei123

如果我们使用加法 + 运算符连接值,我们将不得不将整数转换为字符串。