Python,PEP-8,E122延续线缺少缩进或缩进

时间:2015-10-15 11:40:34

标签: python pep8

我收到此错误但是我选择缩进它,我仍然明白了,你知道为什么吗?

if len(argmaxcomp) == 1:
    print "The complex with the greatest mean abundance is: {0}"\
    .format(argmaxcomp[0])

5 个答案:

答案 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)

one section in the PEP8的内容为:

  

包装长行的首选方法是在括号,括号和括号内使用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。

之外什么都不应该