2014-02-08 45 views
1

如果我有一个文件python_error_msg.pyMissleading Python的错误消息

x = [e for e in range(x) 
x+=1 

运行

$ python3 python_error_msg.py 

缺少的支架提供了以下错误:

File "python_error_msg.py", line 2 
    x+=1 
    ^
SyntaxError: invalid syntax 

为什么d它是以这种方式发生的吗?我的错误是忘记了列表理解上的]。这是可以做得更好的东西,还是Python语法如何工作的更深层次的问题?

此外,我可以在哪里查看 codebase 以了解错误报告在Python中的工作原理?

回答

5

问题是错误不是官方直到第二行。 Python在圆括号内(或括号,大括号等)保持阅读

如果你的代码是这样的呢?

x = [e for e in range(x) 
] 

没有错误。

这就是说,在这些情况下,我希望SyntaxError会说:

SyntaxError: invalid syntax on line 2 of parenthetical 

(毕竟,即使是最有经验的程序员忘记究竟收括号有时

+0

我总是最后读第2行非常仔细,很长一段时间,直到我弄明白了 – mrKelley

+0

关于堆栈溢出的'SyntaxError'问题至少有90%是真正的错误上面的行,在这一点上,我只是先看看那里 – mhlester

+0

我可能会习惯我仍然对如何报告错误非常感兴趣。 – mrKelley