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

3 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)))
Run Code Online (Sandbox Code Playgroud)

如果我可以在......)))/(十进制((...

感谢您的帮助.

史蒂夫

小智 6

你可以在这里找到你的答案。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"
Run Code Online (Sandbox Code Playgroud)


Leb*_*Leb 5

你需要遵循python PEP 0008 - Python Code样式指南.

更具体地说,最大线长

将所有行限制为最多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())
Run Code Online (Sandbox Code Playgroud)

请注意\在逗号后面指示下一行的延续.

根据您的示例,它归结为首选项,但最好在运算符之后执行:

iteration_sum += ((-1)**k)*(Decimal((factorial(6*k)))/
                            (Decimal((factorial(k)**3))*Decimal((factorial(3*k))))*
                            (13591409+545140134*k)/(640320**(3*k)))
Run Code Online (Sandbox Code Playgroud)

额外的缩进表示它们在((-1)**k)*(可读性之后落下.