为什么在下面的程序中提出了IndentationError
而不是SyntaxError
?为什么在这里引发IndentationError而不是SyntaxError?
>>> if True:
... print "just right!"
File "<stdin>", line 2
print "just right!"
^
IndentationError: Missing parentheses in call to 'print'
为了确保IDLE不仅仅是很有趣,我还通过从普通源文件运行它来测试此代码。同样的异常类型仍在被提出。我用来测试这个版本的Python是Python 3.5.2和Python 3.6.1。
我的理解是,使用print
时丢失的括号被认为是SyntaxError
,而不是IndentationError
。在后What does “SyntaxError: Missing parentheses in call to 'print'” mean in Python?顶端回答似乎也支持这一点:
“SyntaxError: Missing parentheses in call to 'print'” is a new error message that was added in Python 3.4.2 primarily to help users that are trying to follow a Python 2 tutorial while running Python 3.
这是一个错误?如果是这样,那是什么造成的?
所以你说这是意图行为? –
@ChristianDean:不完全,我会看看这是否作为bug提交。 –
_“你在这里有两个错误。”_ - 但是如果我在这里必须有两个错误,那么Python通常不会说“在处理上述异常的过程中发生了另一个异常”? –