Python学習チャンネル by PyQ

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

Pythonの「SyntaxError: invalid non-printable character U+3000」とは何ですか?

f:id:konie_ko:20211013140743p:plain

こんにちはPyQサポートです。

今回はSyntaxError: invalid non-printable character U+3000というエラーの意味と考えられる原因を紹介します。

質問:SyntaxError: invalid non-printable character U+3000の原因は?

SyntaxError: invalid non-printable character U+3000 というエラーが出ました。 このエラーの原因を教えてください。

入力した内容(コード)

for i in [1, 2, 3]:
  print(i)

出たエラー(実行結果)

  File "<stdin>", line 2
      print(i)
    ^
SyntaxError: invalid non-printable character U+3000

回答:文法上の間違いがあります

「全角スペース」が不正な使われ方をされているという文法エラーです。 (「U+3000」はユニコードという文字コードにおいて「全角スペース」を表します)

「全角スペース」なので見た目上わかりにくいですが、print(i)の前のインデントに「全角スペース」が使われています。

「全角スペース」はインデントなどに使うことはできないので、それがエラーの原因になっています。

SyntaxError: invalid non-printable character U+3000が出る時にチェックするといい、よくあるミス

  • 半角スペースの箇所が、全角スペースになっていないか?

補足: Python3.8での全角スペースに関するエラー

Python3.8ではこのエラーと同じ理由でSyntaxError: invalid character in identifierというエラーが出ます。

その他のSyntaxErrorの紹介

SyntaxError: invalid syntax

Pythonの文法が正しくないときに発生するエラーです。 Pythonのコマンドや関数の名前を打ち間違えているときにこのエラーメッセージが表示されます。

blog.pyq.jp

SyntaxError: unexpected EOF while parsing

Pythonの文法が正しくないときに発生するエラーです。 関数やメソッドの括弧を閉じ忘れているときにこのエラーメッセージが表示されます。

blog.pyq.jp

SyntaxError: SyntaxError EOL while scanning string literal

Pythonの文法が正しくないときに発生するエラーです。 シングルクォーテーションとダブルクォーテーションが対応していない文字列リテラルになっているときなどにこのエラーメッセージが表示されます。

blog.pyq.jp

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

NameError: name 'xxx' is not defined

未定義の変数を参照しているエラーです。 このエラーは「'xxx'という名前が定義されていない」ということを伝えています。 定義されていない変数名を利用したときにこのエラーメッセージが表示されます。

blog.pyq.jp

Copyright ©2017- BeProud Inc. All rights reserved.