Python Programming: Multiline Comments before an Else statement
当语法错误产生以下代码时,我正在用Python中的简单if-else语句。
1 2 3 4 5 6 7 8 9 10 11 | """ A multi-line comment in Python """ if a==b: print"Hello World!" """ Another multi-line comment in Python """ else: print"Good Morning!" |
此代码在"else"关键字处给出语法错误。
但是,以下代码没有:
1 2 3 4 5 6 7 8 9 10 | """ A multi-line comment in Python """ if a==b: print"Hello World!" #One single line comment #Another single line comment else: print"Good Morning!" |
有人能告诉我为什么会这样吗?为什么python解释器不允许if else语句之间有多行注释?
您的代码中使用了多行字符串。所以你基本上是在写作
1 2 3 4 5 6 | if a==b: print"Hello World!" "A string" else: print"Good Morning!" |
尽管guido van rossum(python的创建者)建议使用多行字符串作为注释,但是pep8建议使用多行注释作为块。
参见:http://legacy.python.org/dev/peps/pep-0008/block comments
对于它的价值,您可以通过使用缩进来解决这个问题:
1 2 3 4 5 6 7 8 9 10 11 12 | a=2 for b in range(2, 4): """ multi-line comment in Python """ if a==b: print"Hello World!" """ Another multi-line comment in Python """ else: print"Good Morning!" |
…但在我看来,它并不特别漂亮。
正如上面建议的那样,正如python将三重引号视为字符串一样,错误的缩进基本上缩短了循环并中断了程序的流,从而在定义不正确的else语句上引发了错误。
因此,我同意先前的Q.S和评论的观点,即多个单行报价是有利的。