注释块/缩进干扰cod

2024-09-29 17:21:54 发布

您现在位置:Python中文网/ 问答频道 /正文

最好通过显示代码来解释此问题:

a = True
b = True
while True:
    """
    A
    """
    if a == True:
        pass
    """
    B
    """
    elif b == True:
        pass

问题是“elifb”有语法错误,但是当删除注释时,问题就消失了。我尝试删除注释上的缩进,结果在结束注释行的“A”后面出现了预期的缩进。我知道我可以改用“#”来评论部分,不过“#”会让事情变得更清楚,而且对大块内容来说更方便。也许我遗漏了一些明显的东西,我将感谢任何帮助


Tags: 代码true内容if评论pass事情语法错误
2条回答

字符串文字不是注释。你有时可以假装它们是评论,但它们不是,事实上它们不是,最终会咬到你

与前面的ifelif关联的块结束后必须立即出现elif。中间可以有注释和空格,但不能有语句和字符串。使用带有#的真实注释

如果您真的想继续假装字符串是注释,您可以将B字符串缩进if的主体中,但它不会与它打算用作注释的块完全对齐,您只需不断修改格式来修补注释和字符串文字之间的差异

当您使用"""triple quotes"""时,您正在创建一个新字符串。因此,在您的elif之前基本上有一个未缩进的代码块,这需要前面的if语句。引号上不正确的制表符结束了if块。一旦解析器到达elif块,它就没有匹配的if块,因此会出现错误

Triplequotes在places中用作docstring,可以充当注释,但实际上它们不是注释

Reference (search for """)

相关问题 更多 >

    热门问题