#英語が分からないからエラーを読まない。
はい、私です。
反省します。
日々ここにpythonエラーを(正確性より分かりやすさ重視)をストックしていきます。
皆さんの力もお貸しいただいて、猿でも分かるエラー辞典を作りたいと思います。
カテゴリーはエラー内容で分けます。ページ内検索を使ってエラーをコピペしたら飛べるようにしたい。
エラーを制するものはプログラミングを制する。
##Syntax系(SyntaxError)
SyntaxError: invalid syntax
構文間違ってるよ・・。
('がなかったりそもそも構文を勘違いしてたりの単純な間違いが多い)
SyntaxError: duplicate argument 'x' in function definition
関数の引数'x'が重複してるよ!確認してみて
SyntaxError: keyword argument repeated
(関数呼び出し時など)引数のキーワードが重複してるよ!
SyntaxError: EOL while scanning string literal
'や"で締められてないよ!ちゃんと'や”を入力しよう!
例)print('x)
SyntaxError: Missing parentheses in call to 'x'
'x'を呼び出すのには括弧が必要です。括弧を付けてください。
よくあるのはpython2.X系ではステートメントだったprintやexecなどがpython3.x系では関数になっているので、その間違いで怒られる事があります。
##Name系(NameError)
NameError: name 'X' is not defined
そんな名前で定義されてるものなんてないよ!綴り間違ってるかもよ。
##Indentation系(IndentationError)
IndentationError: unexpected indent
いらない所にインデント(行頭に空白で字下げすること)がある。
IndentationError: unindent does not match any outer indentation level
インデント(行頭に空白で字下げすること)が一致してないでしょ!
ちゃんと上のインデントと見比べてみてよ。
IndentationError: expected an indented block
インデント(行頭に空白で字下げすること)がない。。。
ちゃんとインデント入れて!!!!!!!!!!
##Type系(TypeError)
TypeError: 'x' object is not callable
'x'オブジェクトが呼び出せない!!
listやstrなどの名前を変数に使ってしまいその後list(X)という感じでリスト化しようとしたら怒られるありがちなエラー。
TypeError: f() takes exactly 'x' arguments ('y' given)
f関数はx個引数設定されているのにy個指定して呼び出してるぞ!(引数の数が合ってない)
TypeError: ord() expected string of length 1, but int found
ord関数は文字に使う物なのに数字が引数に使われてるよ!(英語から推察)
TypeError: unhashable type
可変オブジェクト(listなど)をディクショナリーオブジェクトのKeyに入力した時などに現れるエラー
##Import系(ImportError)
ImportError: No module named
そんなモジュールねーよ!どうなってんだ!
##Attribute系(AttributeError)
AttributeError: 'X' object has no attribute 'Y'
'X'オブジェクト(Xにはstrやmoduleなどの型名が入ります)は'Y'という属性なんて持ってないよ!
本当にXはYという属性を持っているか、スペルミスしていないか確認しましょう。
##UnboundLocal系(UnboundLocalError)
UnboundLocalError: local variable 'X' referenced before assignment
ローカル変数'X'が定義される前に使用されてるよ!
関数内で値の代入が行なわれている場合は代入式がどこに記述されていてもその変数はローカル変数とみなされるので注意が必要です。