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型でなければなりません」ということを伝えています。

+記号を利用して、異なる型同士を結合しようとした時などにこのエラーが表示されます。

blog.pyq.jp

Python初心者によく出るエラー

NameError: name 'xxx' is not defined

未定義の変数を参照しているエラーです。 このエラーは「'xxx'という名前が定義されていない」ということを伝えています。

定義されていない変数名を利用したときにこのエラーメッセージが表示されます。

blog.pyq.jp

Copyright ©2017- BeProud Inc. All rights reserved.