我在教Python人。这个人在下面执行
if 2 == 2
print 'hi'
给了
if 2 == 2
^
SyntaxError: invalid syntax
有没有办法让Python说出missing : at end of if statement
?
答案 0 :(得分:5)
在错误消息中获得这种有用细节的唯一方法是使用(或编写自己的)解释器/编译器。
确定语法错误的确切原因很困难,通常这样做的解释器或编译器很难编写,并且在内存和编译/解释/运行时都有更大的占用空间。
当我在大学时,我学习了PL / C,它是PL / I的兼容变体,可以满足您的需求。实际上,它试图纠正语法错误并继续编译程序。运行时错误也尽可能地得到纠正。理念是在每次编译或运行时为程序员提供尽可能多的调试信息。该语言仅用于开发:一旦程序被调试,PL / I就可以更快地编译和运行程序。我从来没有见过Python的等价物,但我认为没有理论上的原因导致它无法完成。这似乎是博士论文的一个好主题!