Pythonのエラーと例外とは?初心者がよく出会うエラーとその対処法
生徒
「Pythonってどんなときにエラーが出るんですか?」
先生
「エラーは、プログラムの書き方が間違っていたり、実行中に問題が起きたときに出ますよ。」
生徒
「エラーって怖い感じがして苦手なんですけど、大丈夫ですか?」
先生
「大丈夫。どんなエラーがあるのかを知っておけば、落ち着いて対処できます。一緒に学んでいきましょう!」
1. エラーと例外の違いとは?
Pythonでは「エラー」と呼ばれるものに2つの種類があります。ひとつは文法エラー(構文エラー)、もうひとつは例外(実行時エラー)です。
文法エラーは、ルールに従っていないコードを書いたときに起こります。例えば、コロン(:)を忘れたり、インデントがずれていたりすると出ます。
例外は、プログラムの実行中に思わぬことが起きたときに出ます。たとえば、0で割ったり、存在しないファイルを開こうとしたりしたときです。
2. よくある文法エラーの例
文法エラーは、Pythonがコードを読んで「これでは実行できないよ」と止まってしまう状態です。たとえば次のようなコードです。
if True
print("こんにちは")
このコードでは、if
文のあとにコロン(:)がないためSyntaxError
になります。
3. よくある例外(実行時エラー)の例
例外とは、実行中に思いがけないことが起こったときに出るエラーです。よくあるものをいくつか紹介します。
ZeroDivisionError(ゼロ除算エラー)
0で割ると出るエラーです。
print(10 / 0)
NameError(名前エラー)
使おうとした変数が定義されていないと出ます。
print(apple)
TypeError(型エラー)
違う種類のデータを足そうとしたときなどに出るエラーです。
print("年齢は" + 20)
4. エラーの内容をよく読もう
Pythonでは、エラーが出るとその原因を教えてくれるメッセージが表示されます。このメッセージを読めば、どこで何が問題だったのかがわかります。
たとえば、次のように表示されることがあります。
Traceback (most recent call last):
File "main.py", line 1, in <module>
print(10 / 0)
ZeroDivisionError: division by zero
これは「1行目で 0 で割ってるよ」という意味です。
5. エラーを見つけたらどうすればいい?
エラーが出たら、まずは落ち着いて、どのエラーかを確認しましょう。そして、エラーの種類に応じて次のように対処します。
- SyntaxError → コロンや記号の抜け、インデントを見直す
- NameError → 変数のスペルや定義漏れを確認する
- TypeError → 数値と文字列など、型の違いをチェックする
- ZeroDivisionError → 0で割っていないか確認する
エラーメッセージをそのままGoogle検索すると、解決方法がたくさん見つかりますよ。
6. はじめのうちはエラーは出て当然!
初心者のうちは、エラーが出るのは当たり前です。むしろエラーが出るたびに、「お、今学べるチャンスだ」と思ってください。
実際、エンジニアでも毎日エラーと向き合っています。大事なのは「どう直すかを考える力」です。
7. エラーを自分で試してみよう
最後に、自分でいろんなエラーをわざと出してみて、どんな表示になるのかを確認してみましょう。エラーの種類とメッセージを見て慣れていくと、少しずつ怖くなくなりますよ。
そして、エラーの英語メッセージも「なにが起こったか」を説明しているので、辞書などで少しずつ意味を知っていくと役立ちます。