考虑到:

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

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

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

当前回答

来自PEP 8——Python代码风格指南:

对长行进行换行的首选方法是在括号、大括号和大括号内使用Python隐含的行延续。长行可以通过将表达式括在圆括号中来拆分为多行。这些应该优先于使用反斜杠来续行。

有时反斜杠仍然是合适的。例如,长且多的with-语句不能使用隐式延续,因此反斜杠是可以接受的:

以open('/path/to/some/file/you/want/to/read')为file_1, \ 打开('/path/to/some/file/being/written', 'w') as file_2: file_2.write (file_1.read ()) 另一种情况是使用assert语句。

确保适当缩进继续行。对二进制操作符进行换行的最佳位置是在操作符之后,而不是在它之前。一些例子:

类矩形(Blob): 定义__init__(self, width, height, color='black', emphasis=None, highlight=0): If (width == 0 and height == 0 and Color == 'red'和emphasis == 'strong' or 100): 抛出ValueError("抱歉,你输了") 如果width == 0 and height == 0 and (color == 'red' or 重点是None): 抛出ValueError("I don't think so - values are %s, %s" (宽度、高度)) Blob。__init__(self, width, height, 颜色,重点,高亮)file_2.write(file_1.read())

PEP8现在推荐数学家和他们的出版商使用相反的约定(用于二进制运算的中断)来提高可读性。

Donald Knuth在二进制运算符之前中断的风格使运算符垂直对齐,从而减少了眼睛在确定添加和减去哪些项时的工作量。

在二进制操作符之前还是之后换行?:

Donald Knuth在他的计算机和排版系列中解释了传统的规则:“尽管段落中的公式总是在二进制操作和关系之后中断,但显示的公式总是在二进制操作之前中断”[3]。

遵循数学的传统通常会产生更可读的代码:

# Yes:容易匹配操作符和操作数

income = (gross_wages
          + taxable_interest
          + (dividends - qualified_dividends)
          - ira_deduction
          - student_loan_interest)

在Python代码中,只要约定在局部一致,就允许在二进制操作符之前或之后进行换行。对于新代码,建议使用Knuth的风格。

[3]:唐纳德·克努斯的《教科书》,195页和196页

其他回答

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

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'

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

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

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

or

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

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

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

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

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

来自PEP 8——Python代码风格指南:

对长行进行换行的首选方法是在括号、大括号和大括号内使用Python隐含的行延续。长行可以通过将表达式括在圆括号中来拆分为多行。这些应该优先于使用反斜杠来续行。

有时反斜杠仍然是合适的。例如,长且多的with-语句不能使用隐式延续,因此反斜杠是可以接受的:

以open('/path/to/some/file/you/want/to/read')为file_1, \ 打开('/path/to/some/file/being/written', 'w') as file_2: file_2.write (file_1.read ()) 另一种情况是使用assert语句。

确保适当缩进继续行。对二进制操作符进行换行的最佳位置是在操作符之后,而不是在它之前。一些例子:

类矩形(Blob): 定义__init__(self, width, height, color='black', emphasis=None, highlight=0): If (width == 0 and height == 0 and Color == 'red'和emphasis == 'strong' or 100): 抛出ValueError("抱歉,你输了") 如果width == 0 and height == 0 and (color == 'red' or 重点是None): 抛出ValueError("I don't think so - values are %s, %s" (宽度、高度)) Blob。__init__(self, width, height, 颜色,重点,高亮)file_2.write(file_1.read())

PEP8现在推荐数学家和他们的出版商使用相反的约定(用于二进制运算的中断)来提高可读性。

Donald Knuth在二进制运算符之前中断的风格使运算符垂直对齐,从而减少了眼睛在确定添加和减去哪些项时的工作量。

在二进制操作符之前还是之后换行?:

Donald Knuth在他的计算机和排版系列中解释了传统的规则:“尽管段落中的公式总是在二进制操作和关系之后中断,但显示的公式总是在二进制操作之前中断”[3]。

遵循数学的传统通常会产生更可读的代码:

# Yes:容易匹配操作符和操作数

income = (gross_wages
          + taxable_interest
          + (dividends - qualified_dividends)
          - ira_deduction
          - student_loan_interest)

在Python代码中,只要约定在局部一致,就允许在二进制操作符之前或之后进行换行。对于新代码,建议使用Knuth的风格。

[3]:唐纳德·克努斯的《教科书》,195页和196页

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