Python 编程:Else 语句前的多行注释

Posted

技术标签:

【中文标题】Python 编程:Else 语句前的多行注释【英文标题】:Python Programming: Multiline Comments before an Else statement 【发布时间】:2015-03-28 12:50:36 【问题描述】:

当语法错误出现以下代码时,我正在使用 Python 中的简单 if-else 语句。

"""
A multi-line comment in Python
"""
if a==b:
    print "Hello World!"

"""
Another multi-line comment in Python
"""
else:
    print "Good Morning!"

此代码在“else”关键字处出现语法错误。

以下代码却没有:

"""
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 语句之间有多行 cmets?

【问题讨论】:

"""This is a string, not a comment""" 如何在 Python 中编写多行注释? Multi-Line Comments in Python 【参考方案1】:

您在代码中使用了多行字符串。所以你基本上是在写

if a==b:
    print "Hello World!"

"A string"
else:
    print "Good Morning!"

虽然 Guido Van Rossum(Python 的创建者)suggested to use multiline strings as comments,但 PEP8 建议使用多个单行 cmets 作为块。

见:http://legacy.python.org/dev/peps/pep-0008/#block-comments

【讨论】:

【参考方案2】:

不管怎样,你可以通过使用缩进来解决这个问题:

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!"

...但它不是特别漂亮,imo。

由于 python 将三引号视为字符串,如上所述,错误的缩进基本上会缩短循环并中断程序的流程,从而在定义不明确的 else 语句上引发错误。

所以我同意之前的 Q.s 和 cmets 观点,即多个单行引号是有利的。

【讨论】:

以上是关于Python 编程:Else 语句前的多行注释的主要内容,如果未能解决你的问题,请参考以下文章

2.python基础知识 行与缩进注释多行语句

Python中如何添加注释

3if和while语句

Python基础语法

Python基础中不常用的一些细节

python基础