为什么python解释器会提示……注释“#”?

为什么python解释器会提示……注释“#”?,第1张

概述在 Python解释器中,如果我输入#作为注释,为什么它会提示……?我期待一个>>>提示. 例如., >>> # my comment... x = 4>>> x4>>> # my comment... fooTraceback (most recent call last): File "<stdin>", line 2, in <module>NameError: name 在 Python解释器中,如果我输入#作为注释,为什么它会提示……?我期待一个>>>提示.

例如.,

>>> # my comment... x = 4>>> x4>>> # my comment... fooTraceback (most recent call last):  file "<stdin>",line 2,in <module>nameError: name 'foo' is not @R_419_5552@d
解决方法 这是我对已发生事情的有根据的猜测;我还没看过Python的 REPL代码.如您所知,Python交互式shell在基于解析了前一行的内容而期望进一步输入时使用…提示符.

例如:

>>> if True:...

…因为如果……:< newline>必须遵循lexical structure of Python的缩进块.

请注意,除了空格之外,您可以使用空行触发相同的奇怪行为,例如:

>>> <space><enter>...

根据Python的词法规则,在大多数情况下,只包含空格的行不应被视为传递语句或空块,但应该将其视为根本不显示.举个例子(用|来强调每行末尾没有空格):

if False:||    print "Foo"|# comment|    print "bar"||print "Baz"|

如果您运行此代码,它将只打印Baz.前两个print语句被视为同一个块的一部分,尽管事实上在它们之前,之后和中间都有非缩进的空行或仅注释行.

基本上,当Python解释器读取空行或仅包含注释的行时,它假装它根本不读取任何行.交互式解释器基本上遵循这种行为:它正在等待输入,如果它没有输入,它会要求更多输入.因此…继续输入提示.

似乎是一个完全空行的情况(在删除Eol字符之后的行==”)是特殊情况下的交互式解释器,但是这个特殊的外壳没有扩展到只包含注释的行和/或空白.

总结

以上是内存溢出为你收集整理的为什么python解释器会提示……注释“#”?全部内容,希望文章能够帮你解决为什么python解释器会提示……注释“#”?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1197149.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存