人生が変わるオンラインサロン!
月3万副業収入が得られる!Mサロン!31日間無料体験!Pythonをさらに学びたい方へ
Pythonを理解して頂くために参考書を執筆致しました!
Pythonのラムダ式、リスト、辞書型、Pandasなどを学びたい方にオススメの本となっています。演習問題をたくさん用意しているので、実践形式で理解しやすい内容となっています
下記の画像をクリック!!kindleunlimitedの会員であれば無料で見れます!
⇩初心者向け ⇩中級者向け
PythonでChatGPTAPIを使ってブログ作成を自動化しませんか?
PythonのNameErrorとその対処方法
Pythonでプログラムを書いていると、時々"NameError"というエラーメッセージが表示されることがあります。これは定義されていない変数や関数、クラスを参照しようとしたときに発生します。

Pythonのエラー一覧はコチラ
-
-
【Python】よく起こるエラー一覧 11個のPythonのエラー事例と対処方法を確認して、適切に対処しよう!
この記事はChatGPTで画像の挿入、ソースコードの形式も含めて 90%~100%作成されています。作り方は画像をクリック! 人生が変わるオンラインサロン! 月3万副業収入が得られる!Mサロン!31日 ...
続きを見る
1. 変数が未定義の場合
まず、一番よく発生するケースとして、変数が未定義の場合を見てみましょう。
1 2 |
# 未定義の変数を参照 print(x) |
このコードを実行すると以下のようなエラーメッセージが表示されます。
出力結果
NameError: name 'x' is not defined
これは変数xが定義されていないために起こります。対策としては、変数を適切に定義することです。
1 2 3 |
# 変数を定義 x = 10 print(x) |
修正後のコードを実行するとエラーが消え、出力結果は以下のとおりです。
出力結果
10

2. スコープ外の変数を参照した場合
次に、スコープ外の変数を参照したときに発生するエラーについて見てみましょう。
1 2 3 4 5 |
# スコープ外の変数を参照 def my_func(): print(y) my_func() |
このコードを実行すると以下のようなエラーメッセージが表示されます。
出力結果
NameError: name 'y' is not defined
これは関数内で定義されていない変数yを参照しようとしたためです。関数内で使う変数は関数内で定義するか、引数で渡す必要があります。
1 2 3 4 5 6 |
# スコープ内で変数を定義 defmy_func(): y = 20 print(y) my_func() |
修正後のコードを実行するとエラーが消え、出力結果は以下のとおりです。
出力結果
20

3. タイプミスによるNameError
タイプミスもよくあるエラーの原因です。変数名や関数名を間違えて入力してしまうとNameErrorが発生します。
1 2 3 |
# タイプミスによるエラー name = "John" print(nmae) |
このコードを実行すると以下のようなエラーメッセージが表示されます。
出力結果
NameError: name 'nmae' is not defined
これは、'name'の綴りを間違えて'nmae'と入力してしまったために発生します。タイプミスは細心の注意を払って確認しましょう。
1 2 3 |
# タイプミスを修正 name = "John" print(name) |
修正後のコードを実行するとエラーが消え、出力結果は以下のとおりです。
出力結果
John

4. モジュールや関数が未インポートの場合
Pythonで外部ライブラリを使用する際には、それをインポートする必要があります。インポートせずに使用しようとするとNameErrorが発生します。
1 2 |
# pandasをインポートせずに使用 df = pd.DataFrame() |
このコードを実行すると以下のようなエラーメッセージが表示されます。
出力結果
NameError: name 'pd' is not defined
これは、pandasライブラリをインポートせずにDataFrameを作成しようとしたためです。必要なライブラリは最初にインポートしましょう。
1 2 3 |
pandasをインポート import pandas as pd df = pd.DataFrame() |
修正後のコードを実行するとエラーが消え、DataFrameが作成されます。

5. ローカル変数とグローバル変数の混乱
関数内でグローバル変数を更新しようとしてエラーが発生することもあります。
1 2 3 4 5 6 7 |
# グローバル変数を更新しようとする z = 10 def update_z(): z = z + 1 return z update_z() |
このコードを実行すると以下のようなエラーメッセージが表示されます。
出力結果
UnboundLocalError: local variable 'z' referenced before assignment
これは関数内でグローバル変数zを更新しようとしたためです。関数内でグローバル変数を更新するにはglobalキーワードを使用します。
1 2 3 4 5 6 7 8 |
# グローバル変数を更新 z = 10 def update_z(): global z z = z + 1 return z update_z() |
修正後のコードを実行するとエラーが消え、出力結果は以下のとおりです。
出力結果
11

まとめ
PythonのNameErrorは、変数や関数、クラスなどが適切に定義されていないときに発生します。原因となるケースは多岐にわたりますが、基本的には定義前の参照を避け、スコープを理解し、タイプミスに注意することで対処できます。また、ライブラリの使用では適切なインポートを忘れずに、グローバル変数とローカル変数の使い分けも理解しておくことが重要です。
最後まで読んで頂き、ありがとうございました。

Pythonのエラー一覧はコチラ
-
-
【Python】よく起こるエラー一覧 11個のPythonのエラー事例と対処方法を確認して、適切に対処しよう!
この記事はChatGPTで画像の挿入、ソースコードの形式も含めて 90%~100%作成されています。作り方は画像をクリック! 人生が変わるオンラインサロン! 月3万副業収入が得られる!Mサロン!31日 ...
続きを見る
人生が変わるオンラインサロン!
月3万副業収入が得られる!Mサロン!31日間無料体験!Pythonをさらに学びたい方へ
Pythonを理解して頂くために参考書を執筆致しました!
Pythonのラムダ式、リスト、辞書型、Pandasなどを学びたい方にオススメの本となっています。演習問題をたくさん用意しているので、実践形式で理解しやすい内容となっています
下記の画像をクリック!!kindleunlimitedの会員であれば無料で見れます!
⇩初心者向け ⇩中級者向け
PythonでChatGPTAPIを使ってブログ作成を自動化しませんか?