2024-09-29 17:21:54 发布
网友
最好通过显示代码来解释此问题:
a = True b = True while True: """ A """ if a == True: pass """ B """ elif b == True: pass
问题是“elifb”有语法错误,但是当删除注释时,问题就消失了。我尝试删除注释上的缩进,结果在结束注释行的“A”后面出现了预期的缩进。我知道我可以改用“#”来评论部分,不过“#”会让事情变得更清楚,而且对大块内容来说更方便。也许我遗漏了一些明显的东西,我将感谢任何帮助
字符串文字不是注释。你有时可以假装它们是评论,但它们不是,事实上它们不是,最终会咬到你
与前面的if或elif关联的块结束后必须立即出现elif。中间可以有注释和空格,但不能有语句和字符串。使用带有#的真实注释
if
elif
#
如果您真的想继续假装字符串是注释,您可以将B字符串缩进if的主体中,但它不会与它打算用作注释的块完全对齐,您只需不断修改格式来修补注释和字符串文字之间的差异
当您使用"""triple quotes"""时,您正在创建一个新字符串。因此,在您的elif之前基本上有一个未缩进的代码块,这需要前面的if语句。引号上不正确的制表符结束了if块。一旦解析器到达elif块,它就没有匹配的if块,因此会出现错误
"""triple quotes"""
Triplequotes在places中用作docstring,可以充当注释,但实际上它们不是注释
Reference (search for """)
字符串文字不是注释。你有时可以假装它们是评论,但它们不是,事实上它们不是,最终会咬到你
与前面的
if
或elif
关联的块结束后必须立即出现elif
。中间可以有注释和空格,但不能有语句和字符串。使用带有#
的真实注释如果您真的想继续假装字符串是注释,您可以将B字符串缩进
if
的主体中,但它不会与它打算用作注释的块完全对齐,您只需不断修改格式来修补注释和字符串文字之间的差异当您使用
"""triple quotes"""
时,您正在创建一个新字符串。因此,在您的elif之前基本上有一个未缩进的代码块,这需要前面的if语句。引号上不正确的制表符结束了if
块。一旦解析器到达elif
块,它就没有匹配的if块,因此会出现错误Triplequotes在places中用作docstring,可以充当注释,但实际上它们不是注释
Reference (search for """)
相关问题 更多 >
编程相关推荐