まず結論
SyntaxError: invalid syntax は、Pythonが文法として読めない書き方を見つけたときに出ます。
if score >= 60
print("合格")
このコードでは、if の行の最後に : がないためエラーになります。
読む目安
次のようなエラーで止まった人向けです。
SyntaxError: invalid syntax
意味は「文法が正しくありません」です。
イメージで考える
SyntaxError は、Pythonが文の形を読み取れなかった合図です。
コロン、かっこ、引用符は、文の形を作る留め具のようなものです。
留め具が1つ足りないと、Pythonは「この文はどこで終わるの?」と迷います。
コロン忘れ
if、for、while、def の行では、最後に : が必要です。
if score >= 60:
print("合格")
コロンがないと、Pythonは次の行との関係を読めません。
かっこ忘れ
かっこを閉じ忘れてもエラーになります。
print("こんにちは"
この場合、) が足りません。
引用符忘れ
文字列の引用符を閉じ忘れることもあります。
message = "こんにちは
" が片方しかないため、文字列の終わりが分かりません。
直前の行を見る
エラー表示の行が原因とは限りません。
直前の行でかっこや引用符を閉じ忘れていると、次の行でエラーに見えることがあります。
読み方のコツ
SyntaxError が出たら、まず次の3つを見ます。
- コロン
:を忘れていないか - かっこ
()を閉じているか - 引用符
"や'を閉じているか
文の形を整えると直ることが多いです。
手を動かすミニ練習
次のコードの : を消して、エラー文を見てみましょう。
if 3 > 1:
print("OK")
SyntaxError は、Pythonが文の形を読めないときに出ます。
3行まとめ
- SyntaxErrorはPythonの文法として読めないときに出る。
- コロン忘れ、かっこ忘れ、引用符忘れでよく起きる。
- エラー行だけでなく直前の行も確認する。