よくあるエラー

初心者が出しがちなエラーメッセージに関して、エラーメッセージが英語だからと読まずに飛ばす人が多いかと思って和訳をJython本に書いていたんだけど、どうせならここで公開して他に陥りがちなエラーメッセージの情報を集めた方がいいんじゃないかと思った。

  • "__add__ nor __radd__ defined for these operands"「その計算の対象にしているオブジェクトには__add__も__radd__も定義されていないよ(足し算が定義されていないよ)」→数が入っているつもりの変数にNoneが入っていたりするとかありがち。数を返すはずの関数がreturnしわすれでNoneを返すとか。
  • "global name 'x' is not defined"「'x'という名前の変数が(グローバルまで探しに行ったけど)見つからなかったよ!つづり間違ってない?」
  • "NameError: name 'true' is not defined"「'true'は定義されていないよ!つづり間違ってない?」
    • ちなみにTrueが正解。
  • "UnboundLocalError: local variable 'y' referenced before assignment"「ローカル変数yは代入するまえに読まれてるよ!つづりまちがってない?」
  • "TypeError: drawOval(): 1st arg can't be coerced to int"「drawOvalの1番目の引数がintに変換できないよ!」
  • "not all arguments converted"「埋め込むモノが余った」
  • "not enough arguments for format string"「埋め込むモノが足りない」
        • -
  • "IndentationError: unindent does not match any outer indentation level"「インデントの個数が中途半端な位置に減っている!」
  • "IndentationError: unexpected indent"「いらないところにインデントがある」
  • "IndentationError: expected an indented block"「インデントが必要なのにないよ!」

line 3とか書いてあるはずなのでその行を見て直す。問題がなさそうに見える場合タブとスペースが混在しているかも。区別できるエディタを使おう。

        • -

インデントが全角スペースでエラーを出させると、なかなか悲惨。  SyntaxError: invalid syntax  としか言ってくれない。

orz。空白文字をホントに空白でレンダリングするエディタは消えてなくなるといいと思う。とりあえずIDLEに貼り付けて実行すればシンタックスエラーの位置を赤くしてくれるよ。