为什么python解释器会提示。。。请发表评论#&引用;?
在Python解释器中,如果我输入一个为什么python解释器会提示。。。请发表评论#&引用;?,python,comments,interpreter,read-eval-print-loop,Python,Comments,Interpreter,Read Eval Print Loop,在Python解释器中,如果我输入一个#作为注释,为什么它会提示…?我希望出现>>提示 e、 g >#我的评论 ... x=4 >>>x 4. >>>#我的评论 ... 福 回溯(最近一次呼叫最后一次): 文件“”,第2行,在 NameError:未定义名称“foo” 这是一个提示,就像当您键入def foo():并按enter键时,它会显示一个省略号(…),并在一些提示下自动为您创建选项卡。这只是说它接受了你在多行线上做的事情。这是我对正在发生的事情的有根据的猜测;我实际上还没有看过Pytho
#
作为注释,为什么它会提示…
?我希望出现>>
提示
e、 g
>#我的评论
... x=4
>>>x
4.
>>>#我的评论
... 福
回溯(最近一次呼叫最后一次):
文件“”,第2行,在
NameError:未定义名称“foo”
这是一个提示,就像当您键入def foo():
并按enter键时,它会显示一个省略号(…),并在一些提示下自动为您创建选项卡。这只是说它接受了你在多行线上做的事情。这是我对正在发生的事情的有根据的猜测;我实际上还没有看过Python的代码。如您所知,Python interactive shell在解析了前一行的内容后需要进一步输入时,会使用..
提示符
例如:
>>> if True:
...
。。。因为如果…:代码>后面必须有一个缩进块,符合以下要求:
请注意,您可以使用除空格外为空的行触发相同的稍微奇怪的行为,例如:
>>> <space><enter>
...
如果运行此代码,它将仅打印Baz
。前两个<代码>打印< /COD>语句被视为同一块<强>的一部分,尽管在它们之前、之后和在它们的中间>/P>中有非缩进的空的或注释的行。
基本上,当Python解释器读取一行空白或仅包含注释时,它会假装根本没有读取任何行。交互式解释器基本上遵循这种行为:它在等待输入,如果没有输入,它会要求更多的输入。因此,…
继续输入提示
完全空白的行(行==''
在切掉EOL字符后)的大小写似乎是特殊的,但这种特殊的大小写并没有扩展到只包含注释和/或空白的行。它需要一个语句。它跳过注释并提示输入语句的其余部分(因此…
)。很像如果命令包含一个行继续符或不平衡的括号。我认为这里要问的更好的问题是,为什么您要尝试使用命令行输入注释?如果这是一个问题,为什么不将您的注释放在后面,foo=4 35; foobar
我认为一个好问题是为什么解释器需要一个语句。很可能,这只是REPL如何解析输入的产物,不值得优化这种特殊情况。你可以将问题转过来问,“为什么当我按下按钮时,解释器没有提示…
?”完全空白的行是交互式解释器的特殊情况,虽然只有空格/注释的行不是“在多行上做某事”——但在“#”的情况下,它是一行“运算符”。
>>> <space><enter>
...
if False:|
|
print "Foo"|
# comment|
print "Bar"|
|
print "Baz"|