我收到此错误但是我选择缩进它,我仍然明白了,你知道为什么吗?
if len(argmaxcomp) == 1:
print "The complex with the greatest mean abundance is: {0}"\
.format(argmaxcomp[0])
答案 0 :(得分:5)
通常pep8建议你prefer parenthesis over continuation lines。
包装长行的首选方法是在括号,括号和括号内使用Python隐含的行继续。通过在括号中包装表达式,可以在多行中分割长行。这些应该优先使用反斜杠进行续行。
那是:
if len(argmaxcomp) == 1:
print("The complex with the greatest mean abundance is: {0}"
.format(argmaxcomp[0]))
另一个选择是使用python 3的print:
from __future__ import print_function
if len(argmaxcomp) == 1:
print("The complex with the greatest mean abundance is:", argmaxcomp[0])
注意:print_function可能会破坏/需要更新其余代码...在您使用过的任何地方打印。
答案 1 :(得分:0)
包装长行的首选方法是在括号,括号和括号内使用Python隐含的行继续。通过在括号中包装表达式,可以在多行中分割长行。这些应该优先使用反斜杠来继续行。
反斜杠有时可能仍然合适。例如,long,multiple with -statements不能使用隐式延续,因此可以接受反斜杠
这意味着(即使这与PEP8-E122无关)你应该将它包装在paranthesis而不是使用反斜杠,然后隐式行继续(缩进)是开始括号:
if len(argmaxcomp) == 1:
print("The complex with the greatest mean abundance is: {0}"
.format(argmaxcomp[0]))
# ^--------- The bracket opens here
只有2个例外,其中反斜杠是可以接受的,因为paranthesis是不可能的(因为它们在这些上下文中有另一种含义):
with
assert
Š但是如果你真的想要反斜杠(只能用python2),它应该与第一个表达式具有相同的缩进:
if len(argmaxcomp) == 1:
print "The complex with the greatest mean abundance is: {0}" \
.format(argmaxcomp[0])
# ^--------- The first expression starts here
答案 2 :(得分:0)
在这种情况下的问题是根本没有缩进 显然,错误发生在最后一行。 如果括号不是一个选项,只需添加缩进,如下所示:
if len(argmaxcomp) == 1:
print "The complex with the greatest mean abundance is: {0}" \
.format(argmaxcomp[0])
任何数量的空间都有效,但我不知道什么是首选。
答案 3 :(得分:0)
我没有得到上述错误,但我尝试过以下类型, 请发布错误,以便我们检查
In [6]: argmaxcomp = [100]
In [7]: if len(argmaxcomp) == 1:
...: print 'val: {0}'\
...: .format(argmaxcomp[0])
...:
val: 100
In [8]: if len(argmaxcomp) == 1:
...: print 'val: {0}'.format(argmaxcomp[0])
...:
val: 100
In [9]: if len(argmaxcomp) == 1:
...: print 'val: {0}'.format(
...: argmaxcomp[0])
...:
val: 100
答案 4 :(得分:0)
刚遇到类似的问题并解决了它。我认为OP代码的问题是延续线之间可能有空格。除了\ n。
之外什么都不应该