まず結論
NameError は、Pythonがその名前を知らないときに出ます。
print(name)
この前に name を作っていなければ、エラーになります。
こんなときに読む記事です
次のようなエラーで止まった人向けです。
NameError: name 'name' is not defined
意味は「name という名前は定義されていません」です。
先に変数を作る
変数は、使う前に代入しておく必要があります。
name = "モコ"
print(name)
このように、先に name に値を入れておけば動きます。
つづり違いに注意
よくあるのが、変数名のつづり違いです。
message = "こんにちは"
print(mesage)
message と mesage は別の名前です。
Pythonはかなり正直に名前を見ています。
大文字小文字も別
Pythonでは、大文字と小文字も区別されます。
Name = "モコ"
print(name)
Name と name は別の名前です。
関数名でも起きる
関数を定義する前に呼んだり、名前を間違えたりしても起きます。
say_helo()
say_hello と書きたかったのに、つづりが違うかもしれません。
読み方のコツ
NameError が出たら、「Pythonが知らない名前を使った」と考えます。
その名前が前の行で作られているか、つづりや大文字小文字が合っているか確認しましょう。
3行まとめ
- NameErrorはPythonが名前を見つけられないときに出る。
- 変数を作る前に使うと起きる。
- つづり違いや大文字小文字の違いにも注意。