考虑到:

e = 'a' + 'b' + 'c' + 'd'

我怎么把上面的内容写成两行呢?

e = 'a' + 'b' +
    'c' + 'd'

当前回答

使用反斜杠来结束一行的危险在于,如果在反斜杠之后添加了空格(当然,这很难看到),反斜杠就不再起到您所认为的作用了。

参见Python习语和反习语(适用于Python 2或Python 3)了解更多信息。

其他回答

这可能不是python的方式,但我通常使用带有join函数的列表来编写长字符串,就像SQL查询一样:

query = " ".join([
    'SELECT * FROM "TableName"',
    'WHERE "SomeColumn1"=VALUE',
    'ORDER BY "SomeColumn2"',
    'LIMIT 5;'
])

来自马的口:明确的路线 加入 可能是两条或更多的物理线 使用连接成逻辑行 反斜杠字符(\),如下: 当物理行以。结束时 不是字符串一部分的反斜杠 字面的或注释的,它与 下面形成一个单一的逻辑 ,删除反斜杠和 在行尾字符之后。为 例子: 如果1900 <年< 2100且1 <=月<= 12 \ 和1 <=天<= 31和0 <=小时< 24 \ 和0 <=分钟< 60和0 <=秒< 60:#看起来像一个有效的日期 返回1 以反斜杠结尾的行不能 加上注释。反斜杠则不然 继续评论。反斜杠可以 除了字符串外,不能继续标记 文字(即,符号以外的 字符串字面量不能被分割 使用反斜杠的物理行)。一个 的其他地方反斜杠是非法的 字符串字面量外的行。

如果你想因为一个很长的字符串文字而打断你的行,你可以把这个字符串分解成几个部分:

long_string = "a very long string"
print("a very long string")

将被

long_string = (
  "a "
  "very "
  "long "
  "string"
)
print(
  "a "
  "very "
  "long "
  "string"
)

两个print语句的输出:

一条很长的弦

注意做作中的圆括号。

还需要注意的是,将字面值字符串分解为多个部分,允许只在字符串的部分使用字面值前缀,并混合使用分隔符:

s = (
  '''2+2='''
  f"{2+2}"
)

使用反斜杠来结束一行的危险在于,如果在反斜杠之后添加了空格(当然,这很难看到),反斜杠就不再起到您所认为的作用了。

参见Python习语和反习语(适用于Python 2或Python 3)了解更多信息。

这条线是什么?你可以在下一行有参数,没有任何问题:

a = dostuff(blahblah1, blahblah2, blahblah3, blahblah4, blahblah5, 
            blahblah6, blahblah7)

否则你可以这样做:

if (a == True and
    b == False):

或者使用显式换行:

if a == True and \
   b == False:

查看样式指南了解更多信息。

使用括号,你的例子可以写在多行:

a = ('1' + '2' + '3' +
    '4' + '5')

使用显式换行也可以得到同样的效果:

a = '1' + '2' + '3' + \
    '4' + '5'

注意,样式指南说使用隐式的括号继续是首选,但在这种特殊情况下,仅仅在表达式周围添加括号可能是错误的方式。