为什么Python解释器在以下行显示语法错误?

PPr*_*eus 1 python

我一直用一些代码帮助一个新的Python用户,他问我为什么python解释器在实际错误之后会在行上显示一些语法错误.请考虑以下代码:

x = [1, 2, 3
print x
Run Code Online (Sandbox Code Playgroud)

将显示该行的语法错误print x,尽管错误确实在前一行.

这可能是非常令人困惑(并且浪费时间)第一次遇到它,这是一个非常常见的问题(在您最喜欢的搜索引擎上搜索"python语法错误"),似乎并不难纠正......为什么还没有修好?目前的方法有一些好处吗?

Cri*_*scu 7

将列表拆分为多行是有效的Python语法,如下所示:

x = [1, 2, 3
, 4, 5, 6]
print x
Run Code Online (Sandbox Code Playgroud)

因此,解释器开始读取print...期望列表的有效延续的行,这显然是找不到的.

此外,我没有发现这非常误导.我认为很容易弄清楚你为什么会得到这个错误.