1. はじめに|「NameError」は初心者の関門!
Pythonを始めたばかりの人が最初につまずきやすいエラー、それが「NameError(ネームエラー)」です。
たとえば、こんな感じのエラーを見たことがありませんか?
print(score)
# => NameError: name 'score' is not defined
「え?ちゃんと書いたのにエラー?なにが悪いの?」と戸惑う方、多いんです。
でも安心してください。これはPythonが「scoreって何?そんな名前のもの知らないよ!」と教えてくれているだけなんです。
じつはこのエラー、多くの場合はちょっとしたミスが原因です。
たとえば、変数を定義する前に使ってしまったり、名前を間違えたり、大文字小文字をうっかり変えてしまったり。
こうした「変数名まわりのミス」は、初心者にとって“あるある”な落とし穴。
ですが、どんなミスが起きやすいのかをあらかじめ知っておけば、防ぐのはかんたんです!
この記事では、Python初心者がやりがちな変数名のミス5選と、その対策をやさしく解説していきます。
「エラーにビビらずプログラミングを楽しめるようになりたい!」
そんなあなたにぴったりの内容になっているので、ぜひ最後まで読んでみてくださいね!
2. NameErrorってどんなエラー?
Pythonでプログラムを動かしていると、こんなエラーメッセージを見かけることがあります。
print(score)
# NameError: name 'score' is not defined
これが**NameError(ネームエラー)**です。日本語にすると「名前が見つかりませんエラー」という感じ。
ようするに、「その名前(変数)がどこにも定義されてないよ!」というPythonからのメッセージなんです。
🔍 どうしてこのエラーが出るの?
たとえばこんなときに出ます:
print(message) # ← まだmessageという変数はどこにもない!
Pythonくんは「えっ?messageってなに?そんなの聞いてないよ〜!」と困ってしまうわけですね。
プログラムの中で変数を使うときは、必ず先に「これがmessageです」と教えておく必要があります。
message = "こんにちは!"
print(message) # OK!
こうすれば問題なし!ちゃんと「messageっていう名前はこれですよ」と教えてあげてから使ってますよね。
🧠 他にもある、NameErrorが出るパターン
- スペルミス(打ち間違い) pythonコピーする編集する
myname = "AI" print(my_name) # ← アンダーバーが入ってる! - 大文字・小文字の違い pythonコピーする編集する
UserName = "Alice" print(username) # ← 小文字になってる!
Pythonでは**「UserName」と「username」はまったく別物**として扱われるので、ここでもNameErrorが出てしまいます。
✅ ポイントまとめ
- NameErrorは「名前が定義されていない」エラー
- 変数を使う前に、ちゃんと定義しよう
- スペルや大文字小文字にも気をつけよう

次は、実際に初心者がやりがちな変数名のミス5選を紹介します。
ここを押さえれば、NameErrorともっと仲良くなれますよ!
3. 初心者がやりがちな変数名のミス5選
Pythonを始めたばかりの人がよくやってしまう、変数名に関するミスを5つ紹介します。
これを知っておくだけで、「NameError」をぐっと減らせますよ!
ミス①:変数を定義してないのに使っちゃう
print(score)
これは一番よくあるミスです!
「score」がまだ定義されていないのに、いきなり使ってしまってる状態です。
✅ こうすればOK!
score = 100
print(score)
まず「scoreっていう名前はコレですよ!」ってPythonに教えてあげましょう。
ミス②:大文字・小文字をまちがえる
UserName = "Alice"
print(username)
Pythonでは大文字と小文字を区別するので、「UserName」と「username」は別の変数です。
✅ こうすればOK!
username = "Alice"
print(username)
変数名はなるべく**全部小文字+アンダーバー(_)**で書くと、まちがいにくくなりますよ。
ミス③:スペルミス(うっかり間違い)
naem = "Bob"
print(name)
これは一見気づきにくいですが、「naem」と「name」がまちがってますね。
キーボードの打ち間違い、けっこうやりがちです。
✅ 対策は?
エディタ(例:VSCode)を使っているなら、補完機能や赤い波線で教えてくれることもあります。
うまく活用しましょう!
ミス④:ローカル変数とグローバル変数をごっちゃにする
score = 50
def show_score():
print(score) # OK(外のscoreが見えてる)
def update_score():
score = score + 10 # これはエラー!
update_score()
関数の中で同じ名前の変数を使うと、Pythonは「別の変数だ」と思ってしまうことがあります。
上の例では「関数内でscoreを定義してる」とみなされてしまい、エラーになります。
✅ こうすればOK!
score = 50
def update_score():
global score
score = score + 10 # OK!
update_score()
でも「global」を使うのは上級テクなので、最初は関数の外と中で名前を変えるのが安全です!
ミス⑤:Pythonの予約語を変数名に使っちゃう
list = [1, 2, 3]
print(list)
print(list("abc")) # エラー!
「list」はPythonがもともと使っている組み込み関数の名前です。
これを上書きしちゃうと、本来の機能が使えなくなってしまいます。
✅ 対策は?
list→my_liststr→textint→num
のように、ちょっとだけ変えて使うのがおすすめ!
🎯 まとめ:変数名まわりの注意点を意識しよう!
| ミス | 内容 |
|---|---|
| ① | 定義してない変数を使う |
| ② | 大文字・小文字のまちがい |
| ③ | スペルミス |
| ④ | スコープ(範囲)の混乱 |
| ⑤ | 予約語を使ってしまう |

ちょっとしたことだけど、意識するだけでNameErrorを防げます!
4. NameErrorを防ぐコツ
「NameError」に悩まされないようにするためには、ちょっとした工夫がとても効果的です!
ここでは、Python初心者でもすぐに実践できる4つのコツを紹介します。
✅ コツ①:変数を使う前に「print」で確認!
「この変数、ちゃんと定義できてるかな?」と不安なときは、まず print() でチェックしてみましょう!
score = 90
print(score) # 確認OK!
もしエラーが出たら、「あ、定義されてないかも?」とすぐ気づけます。
**「printは最強のデバッグツール」**という人もいるくらい、頼りになりますよ!
✅ コツ②:エディタの補完機能をフル活用!
VSCodeやPyCharmなどのエディタを使うと、変数名を途中まで打つと候補が出てきます。
user_na...(←途中まで打つと "user_name" が補完候補に出る)
これなら、スペルミスや大文字・小文字の間違いも防ぎやすい!
初心者こそ、良いエディタを使うのがおすすめです。
✅ コツ③:わかりやすい命名ルールを決めよう
たとえば、こんなルールにするとミスが減ります:
- すべて小文字
- 単語の区切りはアンダーバー(_)
- 意味のある名前にする
user_name = "Alice"
user_age = 18
これだけで、読みやすくてミスしにくいコードになりますよ!
✅ コツ④:スコープ(変数の有効範囲)を意識しよう
「関数の中の変数」と「関数の外の変数」は別物です。
これを知らないと、NameErrorや思わぬバグにつながります。
def greet():
name = "Taro"
print(name) # OK!
print(name) # エラー!関数の中の変数は外から見えない
💡コツ:変数の使いどころ(範囲)を意識して、名前を被らせないようにしよう!

変数名を使うときは「自分で名札をつける」つもりで!
名前をつけたら、ちゃんと名札をぶら下げて(定義して)から使おう!
5. まとめ
この記事では、Python初心者がよくぶつかる「NameError(ネームエラー)」について、
その意味や原因、そして防ぐためのコツを紹介してきました。
👇 この記事のおさらい!
| 内容 | ポイント |
|---|---|
| NameErrorとは? | 「その名前(変数)が定義されてないよ!」というエラー |
| よくあるミス | 定義前に使う、スペルミス、大文字小文字の違い、予約語の使用など |
| 防ぐコツ | printで確認、補完機能の活用、命名ルールの統一、スコープを意識する |
💡 初心者にとってのNameErrorは「つまずきポイント」であり「学びポイント」
最初はエラーが出るとびっくりしますよね。でも、エラーはあなたにヒントをくれる“先生”みたいなもの。
「どこを直せばいいか」を教えてくれるので、エラーを恐れず、一緒に学んでいきましょう!

NameErrorをマスターしたら、次は**「スコープ」や「型」**にも挑戦してみましょう。
Pythonの世界がもっと楽しく、わかりやすくなりますよ!
あわせて読みたい
NameError以外にも、Python初心者がよくつまずくポイントはたくさんあります。
以下の記事もあわせて読むことで、もっとスムーズにPythonを学べますよ!
- 🔧 Python初心者がよくつまずくエラー10選と解決法まとめ
→ よく出るエラーをまとめてチェック! - 📘 【初心者向け】Pythonの変数とは?命名ルールと使い方をやさしく解説
→ 変数の基礎をしっかり学びたい方におすすめ! - 🧠 【初心者向け】SyntaxErrorとは?よくある書き間違いと直し方を徹底解説
→ 文法ミスを防ぐためのコツがわかる!
よくある質問(Q&A)
- QNameError: name ‘〇〇’ is not defined」と出たときはどうすればいいの?
- A
まずはその変数がちゃんと定義されているか確認しましょう。スペルミスや大文字・小文字の違いも要チェックです!
- QPythonでは変数名に日本語を使ってもいいの?
- A
技術的には使えますが、基本は英語で書くのがおすすめです。読みやすさやエラー回避のためにも、英単語+アンダーバーでつけると安心です。
- Qlist や str を変数名にしても大丈夫?
- A
一応使えますが、Pythonの機能とかぶる名前(組み込み関数)は避けるべきです。上書きしてしまうと、本来の機能が使えなくなります。







※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。
※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。