NameError
は初心者がよく陥る典型的なエラーです。最初のうちはよくであることになるので、どういったエラーなのか見ていきましょう!
NameErrorとは?
NameError
は、Pythonプログラムで定義されていない変数や関数を使用しようとした際に発生するエラーです。これは、プログラムが変数や関数を認識できない場合に発生します。以下に、NameError
の詳細とそのエラーが生じる具体例を示します。
エラー詳細:
NameError: name 'identifier' is not defined
identifier
は、変数名や関数名などの識別子ですが、その名前の変数や関数が定義されていない場合に発生します。
NameErrorの発生する具体的なコード
具体例1:
print(x)
変数x
が定義されていないため、実行するとNameError
が発生します。
具体例2:
def my_function():
print(result)
my_function()
関数内で変数result
が定義されていないため、my_function()
を呼び出すとNameError
が発生します。
具体例3:
condition = False
if condition:
value = 42
print(value)
condition
が偽の場合にはvalue
が定義されないため、print(value)
でNameError
が発生します。
具体例4:
from math import pi
print(e)
pi
はインポートされましたが、e
はインポートされていないため、print(e)
でNameError
が発生します。
解決方法
解決方法1:
x = 10
print(x)
変数x
を定義してから使用することで、NameError
を回避できます。
解決方法2:
def my_function():
result = 42
print(result)
my_function()
関数内で変数result
を定義してから使用することで、NameError
を回避できます。
解決方法3:
condition = False
value = None # あらかじめ初期化しておく
if condition:
value = 42
print(value)
value
を条件の前にあらかじめ初期化しておくことで、NameError
を回避できます。
解決方法4:
from math import pi, e
print(e)
e
もインポートしてから使用することで、NameError
を回避できます。