
例如.,
>>> # 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解释器会提示……注释“#”?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)