スポンサーリンク

Python初心者がやりがちな変数名のミス5選|NameErrorを防ぐコツ

Python入門

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がもともと使っている組み込み関数の名前です。
これを上書きしちゃうと、本来の機能が使えなくなってしまいます。

対策は?

  • listmy_list
  • strtext
  • intnum

のように、ちょっとだけ変えて使うのがおすすめ!


🎯 まとめ:変数名まわりの注意点を意識しよう!

ミス内容
定義してない変数を使う
大文字・小文字のまちがい
スペルミス
スコープ(範囲)の混乱
予約語を使ってしまう

ちょっとしたことだけど、意識するだけで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を学べますよ!


よくある質問(Q&A)

Q
NameError: name ‘〇〇’ is not defined」と出たときはどうすればいいの?
A

まずはその変数がちゃんと定義されているか確認しましょう。スペルミスや大文字・小文字の違いも要チェックです!

Q
Pythonでは変数名に日本語を使ってもいいの?
A

技術的には使えますが、基本は英語で書くのがおすすめです。読みやすさやエラー回避のためにも、英単語+アンダーバーでつけると安心です。

Q
list や str を変数名にしても大丈夫?
A

一応使えますが、Pythonの機能とかぶる名前(組み込み関数)は避けるべきです。上書きしてしまうと、本来の機能が使えなくなります。

※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。

※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。

スポンサーリンク