我必须编写一个用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)))
如果我可以在...之后拆分它会很棒。))/(十进制((...
提前感谢您的帮助。
史蒂夫
答案 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)))
我希望有所帮助。