【こうぶんえらー】

構文エラー とは?

公開:
💡 コードの「文の組み立て」が合っていないサイン

コードが言語の文法規則に合わず、正しく解析できないエラーです。括弧や記号の不足などが原因になります。

📌 このページのポイント
Python:閉じ括弧を忘れたら? 修正前:構文エラー 修正後:この例は動く print(1 + 2 print(1 + 2) 閉じ括弧が足りない 解析できない 閉じ括弧を補う 表示結果:3 構文が正しくても、実行時のエラーは別 例:1 / 0 は実行時にゼロ除算のエラー
Pythonでの修正前後を比較。文法に合うことだけでは、実行の成功や計算内容の正しさまでは保証されません。
ひよこ ひよこ
構文エラーって、計算の答えを間違えたということ?
ペンギン先生 ペンギン先生
まずはコードの書き方が文法に合わないという意味だよ。例えばPythonで閉じ括弧を忘れた「print(1 + 2」は、そのままでは正しく解析できないんだ。
ひよこ ひよこ
括弧を足せば直るの?
ペンギン先生 ペンギン先生
この例は「print(1 + 2)」に直せば3と表示できるよ。ただし、ほかのエラーも全部なくなるという意味ではないんだ。
ひよこ ひよこ
エラーの矢印が指している所だけを直せばいいの?
ペンギン先生 ペンギン先生
そこは問題を検出した位置で、原因の位置とは限らないよ。例えばPythonで必要なコロンが抜けると、その後の単語で検出されることもある。ファイル名・行番号と、前後のコードを見よう。
ひよこ ひよこ
文法が合っていても止まることがあるの?
ペンギン先生 ペンギン先生
あるよ。Pythonの「1 / 0」は文法には合うけれど、実行するとゼロで割るエラーになる。構文の問題と、実際の計算などで起こる問題は分けて調べるんだ。
もっと詳しく知りたい人へ

構文エラーはプログラムを起動する前にしか起こらない?

起動前だけとは限らないよ。Pythonでは実行中にimportで別のコードを読み込んだり、execやevalで文字列をコードとして解析したりする際にもSyntaxErrorが起こりうる。時計の上でいつ起きたかだけでなく、解析対象のコードが文法に合うかという問題として区別しよう。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「構文エラー」って出てきたら「コードの書き方が文法に合っていないサイン」と思えばだいたいOK!
📖 おまけ:英語の意味
「Syntax Error」 = 構文の誤り
💬 syntaxは文の組み立て、errorは誤りという意味で、コードの文法上の問題を表す言葉だよ。

参考資料

← 用語集にもどる