Python学習チャンネル by PyQ

Pythonのオンライン学習プラットフォームPyQのオフィシャルブログです

SyntaxError: invalid syntaxとは何ですか?

f:id:kenken0326:20200305113125p:plain こんにちはPyQサポートです。
今回はSyntaxError: invalid syntaxというエラーの意味と考えられる原因を紹介します。

質問

SyntaxError: invalid syntaxというエラーが出ました。このエラーが出る原因を教えてください。

入力した内容(コード)

de test():
    print("Fabor")

出たエラー(実行結果)

  File "syntax/syntax02.py", line 1
    de test():
       ^
SyntaxError: invalid syntax

回答

SyntaxErrorというエラーはプログラムがPythonの文法として正しくないときに発生するエラーで、日本語にすると構文エラーです。 このエラーが出た時には書き方が間違っている箇所がないか探してみましょう。

de test():を正しい文法def test():に直すとエラーメッセージが消えるはずです。

SyntaxError: invalid syntaxの解説

このエラーは「無効な構文である」と伝えています。
以下のことを調べましょう。

invalid syntaxが出る時にチェックするといい、よくあるミス

  • Pythonのコマンドや関数の名前を打ち間違えていないか?
  • カッコを閉じ忘れていないか?
  • 半角スペースの箇所が、全角になっていないか?
  • for文, if文, 関数などの「:」を書き忘れていないか?
  • ''(シングルクォーテーション)や""(ダブルクォーテーション)を忘れていないか?

類似エラーの紹介

SyntaxError: SyntaxError EOL while scanning string literal

構文エラーです。このエラーは「文字列リテラルをスキャンしている間に行末が来てしまった」ということを伝えています。

文字列リテラルとは、''(シングルクォーテーション)や""(ダブルクォーテーション)で括られた文字列のことを指します。

シングルクォーテーションとダブルクォーテーションが対応していない文字列リテラルになっているときなどにこのエラーメッセージが表示されます(シングルクォーテーションで始まった文字列リテラルはシングルクォーテーションで閉じなければなりません)。

blog.pyq.jp

SyntaxError: unexpected EOF while parsing

構文エラーです。このエラーは「プログラムの解析中にファイルの末尾までたどり着いてしまった」ということを伝えています。 関数やメソッドの括弧を閉じ忘れているときにこのエラーメッセージが表示されます。

blog.pyq.jp

IndentationError: unexpected indent

インデント(字下げ)のエラーです。 このエラーは「予期しないインデントです」ということを伝えています。 インデントが必要なところでインデントをしていない場合や正しくないインデントが書かれた場合にこのエラーメッセージが表示されます

blog.pyq.jp

TypeError: must be str, not int

データ型に問題がある時に表示されるエラーです。 このエラーは「int型ではなくstr型でなければなりません」ということを伝えています。

文字列と数値をそのまま+演算子で結合している(数値をstr関数を使って文字型に変換しないで連結している)ときにこのエラーメッセージが表示されます。

blog.pyq.jp

Copyright ©2017-2020 BeProud Inc. All rights reserved.