エラー講座
エラーは失敗ではありません
エラーが出ても、パソコンは壊れません。エラーの読み方と、直し方、AIへの渡し方を、実際にエラーを出しながら覚えましょう。
この講座が終わったら
「エラーが出たら、最後の2行を読んで、何行目かを確認する。直せなければ、AIに渡す」と言える。
エラーは、Pythonからのヒントです
まず、わざとエラーを出してみましょう。下のコードは、price を prise と打ち間違えています。「実行」を押してください。
▶ 実行を押すと、ここに結果が出ます
赤っぽい枠でメッセージが出ましたね。でも、パソコンは壊れていませんし、あなたが何か悪いことをしたわけでもありません。
エラーとは、Pythonが「ここが分かりませんでした」と教えてくれているメッセージです。コードを書いたことがある人なら、プロでも毎日のように出会います。出ないほうが珍しいくらいです。
- ① エラーを見るあわてない
- ② 最後の2行を読む全部は読まない
- ③ 何行目か確認その行の近くを見る
- ④ AIに渡す直せないとき
- ⑤ 直して再実行もう一度「実行」
読むのは、最後の2行だけ
さきほどのエラーを、日本語にしてみます。
File "<exec>", line 2, in <module>2行目で(問題が見つかりました)NameErrorエラーの種類:「名前」に関するエラーname 'prise' is not defined「prise」という名前は、知りませんDid you mean: 'price'?もしかして「price」ですか?(Pythonからの提案)日本語にすると
見てほしい場所は、次の2つだけです。
- 何行目か(
line 2のところ) - エラーの種類と説明(いちばん最後の行)
エラーの途中に長い文章が並んでいても、読まなくて大丈夫です。さらに、Pythonが Did you mean ...?(もしかして〜?)と答えを教えてくれることもあります。それが出たら、まず従ってみましょう。
よく出る5つのエラー
初心者がよく出会うエラーは、実は5種類ほどです。名前を覚える必要はありません。「こういう形のメッセージが出たら、ここを疑う」という目安として、読み物のように見てください。
| エラーの名前 | ひとことで言うと | まず疑うこと |
|---|---|---|
| SyntaxError | 書き方のルール違反 | 括弧・引用符の閉じ忘れ、: の付け忘れ、全角記号 |
| NameError | 知らない名前が出てきた | 綴りの打ち間違い、引用符の付け忘れ |
| TypeError | 種類の合わない組み合わせ | 文字と数字を + でつないでいる |
| KeyError | 辞書にない見出しを呼んだ | 見出しの綴り、大文字・小文字 |
| FileNotFoundError | ファイルが見つからない | ファイル名・置き場所・拡張子 |
それぞれ、実際に出して、直してみましょう。各コードは「実行」で一度エラーを出してから、直して「実行」し直します。うまく直せると「できました」と表示されます。
SyntaxError(書き方のルール違反)
▶ 実行を押すと、ここに結果が出ます
ヒントを見る
エラーには「'(' was never closed」(括弧が閉じられていません)とあります。最後に、閉じる括弧を付けます。
答えの例を見る
print("こんにちは")SyntaxError は「文の書き方がルールに合っていません」という意味です。原因は、ほとんどがうっかりです。
(を開いたのに、)を閉じ忘れた"を開いたのに、閉じ忘れたif ...:の:を付け忘れた- 全角の記号(
(”:)を使ってしまった
字下げのミスは、IndentationError という名前で出ます。「字下げが期待されているのに、ありません」のような、字下げに関するメッセージが出たら、行頭の空白(スペース4つ)を見直しましょう。
NameError(知らない名前)
▶ 実行を押すと、ここに結果が出ます
ヒントを見る
「Did you mean: 'price'?」と出ています。2行目の綴りを直します。
答えの例を見る
price = 1000 print(price * 2)
NameError は、「その名前は教えてもらっていません」という意味です。変数を作る前に使っているときや、綴りを間違えているとき、文字なのに引用符を付けていないときにも出ます。
TypeError(種類の合わない組み合わせ)
▶ 実行を押すと、ここに結果が出ます
ヒントを見る
文字と数字は、+ ではつなげられません。print の中で、カンマ(,)で区切って並べると、そのまま表示できます。
答えの例を見る
total = 1000
print("合計は", total, "円")TypeError は、「その組み合わせはできません」という意味です。ここでは「文字」と「数字」を + でつなごうとしたため、エラーになりました。print の中でカンマ区切りにすれば、そのまま並べて表示してくれます。
KeyError(辞書にない見出し)
▶ 実行を押すと、ここに結果が出ます
ヒントを見る
辞書に入っている見出しは「name」と「dept」です。呼び出すときの綴りを、辞書に合わせます。
答えの例を見る
employee = {"name": "田中", "dept": "営業"}
print(employee["dept"])KeyError: 'department' は、「department という見出しはありません」という意味です。辞書の見出しの綴りと、呼び出すときの綴りが、1文字でも違うと出ます。
FileNotFoundError(ファイルが見つからない)
▶ 実行を押すと、ここに結果が出ます
FileNotFoundError は、「そのファイルが見つかりません」という意味です。このページの中には、あなたのファイルは無いので、必ずこのエラーになります。
自分のパソコンでCSVやExcelを読むときに出たら、次の3つを確認します。
- ファイル名の綴りは合っているか(
.csvや.xlsxの拡張子も含めて) - ファイルは、Pythonが探している場所(フォルダ)にあるか
- ファイルを開いたままになっていないか
自分で直せないとき:AIに渡す
どうしても直せないときは、AIに頼みましょう。そのとき、3つを渡すのがコツです。
- やりたいこと(何をするコードか)
- コード全体
- エラーの全文(最後の2行だけでなく、全部コピーします)
エラーの全文は、エラー表示の「エラーの全文を見る」を押すと、出てきます。
AIに渡す文章
次のPythonコードを実行したらエラーが出ました。原因と直し方を、初心者にも分かるように教えてください。 【やりたいこと】 3か月分の売上を合計して表示したい 【コード】 (ここにコードを全部貼る) 【エラーの全文】 (ここにエラーを全部貼る)
次のように比べると、渡し方の違いが分かります。
| 悪い例 | 良い例 |
|---|---|
| 「動かない。直して」 | 「やりたいこと」「コード全体」「エラーの全文」の3つを貼る |
| エラーの最後の1行だけを貼る | エラーを全部貼る |
| コードの一部だけを貼る | コード全体を貼る |
エラーが出たら、やることは5つだけ
- あわてない。エラーは、Pythonからのヒントです。
- 最後の2行を読む。
- 「何行目か」を確認して、その行の近くを見る。
- 直せなければ、やりたいこと・コード全体・エラーの全文をAIに渡す。
- 直したら、もう一度「実行」する。