こんにちはPyQサポートです。
今回はSyntaxError: invalid non-printable character U+3000
というエラーの意味と考えられる原因を紹介します。
- 質問:SyntaxError: invalid non-printable character U+3000の原因は?
- 回答:文法上の間違いがあります
- 補足: Python3.8での全角スペースに関するエラー
- その他のSyntaxErrorの紹介
- Python初心者によく出るエラー
質問: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のコマンドや関数の名前を打ち間違えているときにこのエラーメッセージが表示されます。
SyntaxError: unexpected EOF while parsing
Pythonの文法が正しくないときに発生するエラーです。 関数やメソッドの括弧を閉じ忘れているときにこのエラーメッセージが表示されます。
SyntaxError: SyntaxError EOL while scanning string literal
Pythonの文法が正しくないときに発生するエラーです。 シングルクォーテーションとダブルクォーテーションが対応していない文字列リテラルになっているときなどにこのエラーメッセージが表示されます。
Python初心者によく出るエラー
NameError: name 'xxx' is not defined
未定義の変数を参照しているエラーです。 このエラーは「'xxx'という名前が定義されていない」ということを伝えています。 定義されていない変数名を利用したときにこのエラーメッセージが表示されます。