私は新しいPythonユーザーにいくつかのコードを手伝ってくれていて、Pythonインタプリタが実際のエラーの後でその行に構文エラーを表示する理由を私に尋ねました。次のコードを考えてみましょう:エラーが前の行に本当にあるもののなぜPythonインタプリタは構文エラーを次の行に表示しますか?
x = [1, 2, 3
print x
構文エラーは、print x
とのラインのために表示されます。
これは最初に実行したときに非常に混乱することがあります(それは非常によくある問題です)。是正するのが難しいです...なぜそれが修正されていないのですか?現在のアプローチには何らかの利点がありますか?
最初の行に構文エラー_がありません。 2行目に ']'を付けると、これは有効な構文です。したがって、1行目に何も問題はありません。 –
パーサーは、構文解析ビットが解析されていることを期待していないことにパーサが遭遇すると、構文エラーになります。だから、「これは、あなたがそれを修正する必要がある場所です」ではなく「これが理にかなっていないところです」と考えるのは簡単です...その時点で、あなたが何を言おうとしているのかは分かりません - どの部分が間違っているのか分かりません... –
リストの構文で最後の行にあるとエラーを表示することは妥当でしょうか?私は実際には、新しいPythonプログラマーがこれを実行し、時間を無駄にし、混乱させてしまいます。 – PProteus