Pythonのエラーと例外の基本!初心者がよく出会うエラーとその対処法まとめ
生徒
「Pythonでプログラムを書いてたら、赤い文字で何か出てきて止まっちゃったんですけど…」
先生
「それは『エラー』と呼ばれるもので、Pythonではよくあることです。初心者が最初につまずきやすいポイントですね。」
生徒
「エラーってどうやって直せばいいんですか?全然わからなくて…」
先生
「心配しなくて大丈夫です。今回は、Pythonのエラーの種類や、どうやって対処すればいいのか、わかりやすく説明していきますよ!」
1. Pythonのエラーとは?
Pythonのエラーとは、プログラムが正しく動かないときに出るメッセージのことです。たとえば、スペルミスや計算の間違い、間違った命令を使ったときなどに表示されます。
Pythonのエラーは、大きく分けて2種類あります。
- 構文エラー(SyntaxError):文法のミスで発生するエラー
- 例外(Exception):文法は正しいけれど、実行中に起こるエラー
2. よくある構文エラーの例
Pythonでは、決まった書き方(文法)でコードを書く必要があります。文法を間違えると「構文エラー」が出てしまいます。
以下の例を見てみましょう。
print("こんにちは"
このコードは、)が抜けているためエラーになります。
SyntaxError: unexpected EOF while parsing
エラーを見て「どこでエラーが起きたのか」「何が足りないのか」を確認することが大切です。
3. よくある例外(エクセプション)の種類
プログラムの文法は正しくても、実行中に思わぬ問題が発生すると「例外(Exception)」というエラーが出ます。以下は、初心者がよく出会う代表的な例外です。
ZeroDivisionError(ゼロ除算エラー)
0で割り算しようとすると発生します。
num = 10
print(num / 0)
ZeroDivisionError: division by zero
NameError(ネームエラー)
存在しない変数を使おうとしたときに出るエラーです。
print(my_var)
NameError: name 'my_var' is not defined
TypeError(タイプエラー)
違う種類(型)のデータを間違えて使ったときに発生します。
print("年齢は" + 20)
TypeError: can only concatenate str (not "int") to str
4. エラーが出たときの対処法
Pythonでエラーが出たときは、慌てずに次のポイントを確認しましょう。
- エラーメッセージを読む:どこが間違っているか教えてくれます。
- 行番号をチェック:エラーが出た場所が表示されます。
- スペルミスを探す:変数名や関数名の間違いが多いです。
- カッコやクォーテーションの閉じ忘れ:初心者がよくやるミスです。
5. Pythonのエラーに慣れるコツ
エラーは怖いものではありません。エラーは「どこが間違っているかを教えてくれる先生」のような存在です。
最初はよくエラーが出てしまうかもしれませんが、少しずつ意味がわかるようになります。
分からない単語が出たときは、Googleで「Python NameError 意味」などと検索してみましょう。多くの人が同じミスをしていて、ネット上にたくさんの答えがあります。
6. 英語のエラーメッセージに慣れよう
Pythonのエラーメッセージは英語で表示されますが、意味を知っていれば怖くありません。よく出る英単語と意味を覚えておくと便利です。
- unexpected:予期しない
- undefined:定義されていない
- invalid:無効な
- object:モノやデータのこと
7. エラーはプログラミングの成長のチャンス!
エラーが出るたびに、「なぜこのエラーが出たのか?」「どうすれば直るのか?」と考えることが、プログラミング上達のカギです。
実際、プロのエンジニアでも毎日のようにエラーに向き合っています。エラーは決して恥ずかしいものではなく、むしろ成長のチャンスなのです。
まとめ
Pythonのエラー理解を深めるための総合的な振り返り
Pythonでプログラムを書いていると、初心者が必ずといっていいほど出会うのが「エラー」と「例外」です。エラーはただプログラムを止めてしまう厄介者のように見えますが、実はコードのどこが間違っているのかを教えてくれる案内役でもあります。プログラミングに慣れてくると、エラーメッセージの内容は重要なヒントとなり、正しい修正へ導いてくれる頼もしい存在になります。特にPythonはエラー表現が比較的わかりやすく、内容をよく読むことで対処法が見つかりやすい言語です。
構文エラーは文章の書き方そのものが間違っている場合に発生し、カッコの閉じ忘れやコロンの抜けなど、初心者がよくつまずくポイントです。一方、例外はコードの文法自体は正しくても、実行中に問題が起きることで生じます。代表的なものとしては、ゼロで割ると発生するZeroDivisionError、まだ定義していない変数を使ったときのNameError、異なるデータ型を無理に扱おうとすると起こるTypeErrorなどがあります。これらの例外は、どれもプログラムの処理内容をきちんと理解していれば対処できるものばかりです。
エラーが発生した際には、まずエラーメッセージの内容を落ち着いて確認し、どの行で問題が起きたかを見ることがポイントです。Pythonでは行番号が明確に表示されるため、エラーがどこで起きたのかを探す作業がしやすい特徴があります。また、スペルミスや変数名の間違い、クォーテーションの閉じ忘れなど、見落としやすい基本的なミスを見直すことで、多くのエラーは解決します。初心者のうちは何度も同じようなエラーに出会いますが、そのたびに原因を調べることで、理解が着実に深まっていきます。
さらに、Pythonのエラーメッセージは英語で表示されるため、ある程度よく使われる英単語に慣れておくことも大切です。「unexpected」「undefined」「invalid」などよく登場する表現は、一度意味を覚えてしまえばエラー内容の理解がスムーズになります。英語に苦手意識があっても、エラーメッセージは定型的な単語が多いため、繰り返し読んでいるうちに自然と覚えられるものです。
エラーは避けるものではなく、むしろ成長の機会として向き合うことが大切です。プロのエンジニアでも毎日エラーに遭遇し、その原因調査を行っています。エラーとの向き合い方は、プログラミング能力の向上に直結する経験であり、特に初心者の段階では「どうしてこのエラーが出たのか?」と考える姿勢が大きな成長につながります。
エラーと例外を意識したサンプルコード
以下は、初心者が練習として扱いやすい、例外処理の基本を取り入れたサンプルコードです。
def divide_numbers(a, b):
try:
result = a / b
print("計算結果:", result)
except ZeroDivisionError:
print("エラー:0で割ることはできません。")
except TypeError:
print("エラー:数値以外が入力されています。")
print("――計算開始――")
divide_numbers(10, 2)
divide_numbers(10, 0)
divide_numbers("10", 5)
print("――計算終了――")
このサンプルでは、割り算を行う際によく起こるエラーをtry-exceptを使って適切に処理しています。例外を処理することで、プログラムが途中で止まらず、ユーザーにわかりやすいメッセージを返すことができます。例外処理に慣れることで、予期しない状況でも安定した動作を保てるコードが書けるようになり、プログラムの信頼性が高まります。
エラーや例外の理解は、Pythonプログラミングを続けるうえで必ず役立つ知識です。何度も見て、触れて、修正しながら、自分なりの理解を深めていくことで、コードを書く力が自然と養われていきます。
生徒
「Pythonのエラーって最初は怖かったけど、内容を読めば原因がわかるものも多いんですね!」
先生
「そうなんだよ。特にエラーメッセージは正直で、どこで何が問題なのかをしっかり教えてくれるから、読み方に慣れるだけで対応できる幅が広がるよ。」
生徒
「ゼロ除算や変数名の間違いなど、よく起きる例外も理解できました。今度からエラーが出ても焦らないようにします!」
先生
「その意識がとても大切だよ。エラーは成長のチャンスだから、落ち着いて原因を探せば必ず答えに近づけるはず。これからも挑戦していこうね。」