考虑到:

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

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

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

当前回答

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

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}"
)

其他回答

在行末加一个\,或将语句括在parens(..)中。. 来自IBM的:

b = ((i1 < 20) and
     (i2 < 30) and
     (i3 < 40))

or

b = (i1 < 20) and \
    (i2 < 30) and \
    (i3 < 40)

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

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'

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

还可以在多行中中断方法(obj.method())的调用。

将命令括在圆括号“()”中,并跨越多行:

> res = (some_object
         .apply(args)
         .filter()
         .values)

例如,我发现在链上调用Pandas/Holoviews对象方法很有用。

你可以在圆括号和大括号之间换行。此外,你可以将反斜杠字符\附加到一行来显式地中断它:

x = (tuples_first_value,
     second_value)
y = 1 + \
    2

摘自《Python漫游指南》(Line Continuation):

当一个逻辑代码行长于可接受的限制时,您需要将其拆分到多个物理行上。如果一行的最后一个字符是反斜杠,Python解释器将连接连续的行。这在某些情况下是有用的,但通常应该避免,因为它很脆弱:在行末反斜杠之后添加空白将破坏代码,并可能产生意想不到的结果。 更好的解决方案是在元素周围使用圆括号。如果行尾有一个未关闭的圆括号,Python解释器将连接下一行,直到圆括号关闭为止。同样的行为也适用于大括号和方括号。 然而,通常情况下,必须分割很长的逻辑行是一个迹象,表明您试图同时做太多事情,这可能会影响可读性。

话虽如此,这里有一个例子,考虑多次导入(当超过行限制时,在PEP-8中定义),也适用于字符串:

from app import (
    app, abort, make_response, redirect, render_template, request, session
)