如何将一行代码分成多行?

时间:2015-10-30 15:58:49

标签: python split newline

我必须编写一个用3种不同算法计算Pi的程序。 我使用Chudnovsky公式作为我的第三种算法,它是一个oneliner。 为了便于阅读,我的老师问我是否可以将它分成多行。

代码如下所示:

iteration_sum += ((-1)**k)*(Decimal((factorial(6*k)))/(Decimal((factorial(k)**3))*Decimal((factorial(3*k))))*(13591409+545140134*k)/(640320**(3*k)))

如果我可以在...之后拆分它会很棒。))/(十进制((...

提前感谢您的帮助。

史蒂夫

5 个答案:

答案 0 :(得分:5)

您需要关注python PEP 0008 -- Style Guide for Python Code

更具体地说Maximum Line Length

  

将所有行限制为最多79个字符。

花些时间阅读并熟悉它。例如:

with open('/path/to/some/file/you/want/to/read') as file_1, \
     open('/path/to/some/file/being/written', 'w') as file_2:
    file_2.write(file_1.read())

请注意逗号之后的\,表示下一行的继续。

根据您的示例,它归结为偏好,但最好是在操作员之后执行此操作:

iteration_sum += ((-1)**k)*(Decimal((factorial(6*k)))/
                            (Decimal((factorial(k)**3))*Decimal((factorial(3*k))))*
                            (13591409+545140134*k)/(640320**(3*k)))

附加缩进表示它们落在((-1)**k)*(之后以便于阅读。

答案 1 :(得分:2)

您可以使用\在Python中拆分一长串代码。 即:

result = 1 + 1\
 + 2 * 5\
 - 3.14 * 25

答案 2 :(得分:2)

你可以在这里找到答案。 http://code.runnable.com/UqBbr4-VwoAMAAUN/how-to-write-multiline-statements-in-python

将您的代码行分成几行,并将\ _放在每一行的末尾。

print "this statement " + \
"goes " + \
"beyond " + \
"one " + \
"line " + \
"but gets printed as a single line"

答案 3 :(得分:2)

除了PEP008,这是这些问题的Python真相,你可以使用括号内的事实来添加换行符而不需要\。事实上,这是接受的答案正在使用的机制。

def foo():
    return (1 + 2 ) / (5 + 6 + 7 - 0.5)

请注意,下面的代码不符合PEP008标准,只是地址行 拆分。

def foo2():

    #explicit new line with \
    #after you open a parenthesis ( you can add newlines implicitly until )
    return (1 + 2 ) \
        / (5 
        + 6 
        + 7 
        - 0.5)

print foo()
print foo2()


0.171428571429
0.171428571429

您通常会在选项或词典中看到这一点:

my_opt = dict(
    choice1=1,
    choice2=2,
    choice3=3,
)

答案 4 :(得分:1)

我通常在下一个论点之前分开。在你的情况下,它看起来像这样:

iteration_sum += ((-1)**k)*(Decimal((factorial(6*k)))/
                        (Decimal((factorial(k)**3))*Decimal((factorial(3*k))))*
                        (13591409+545140134*k)/(640320**(3*k)))

我希望有所帮助。