エラー講座

エラーは失敗ではありません

エラーが出ても、パソコンは壊れません。エラーの読み方と、直し方、AIへの渡し方を、実際にエラーを出しながら覚えましょう。

目安 15分 ・ インストール不要 ・ どのレッスンの途中からでも読めます

この講座が終わったら

「エラーが出たら、最後の2行を読んで、何行目かを確認する。直せなければ、AIに渡す」と言える。

PART 1

エラーは、Pythonからのヒントです

まず、わざとエラーを出してみましょう。下のコードは、price を prise と打ち間違えています。「実行」を押してください。

わざとエラーを出してみようコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます

赤っぽい枠でメッセージが出ましたね。でも、パソコンは壊れていませんし、あなたが何か悪いことをしたわけでもありません。

エラーとは、Pythonが「ここが分かりませんでした」と教えてくれているメッセージです。コードを書いたことがある人なら、プロでも毎日のように出会います。出ないほうが珍しいくらいです。

  1. ① エラーを見るあわてない
  2. ② 最後の2行を読む全部は読まない
  3. ③ 何行目か確認その行の近くを見る
  4. ④ AIに渡す直せないとき
  5. ⑤ 直して再実行もう一度「実行」
エラーが出たら、この順番に進めるだけです。
PART 2

読むのは、最後の2行だけ

さきほどのエラーを、日本語にしてみます。

エラーの2行を日本語にする
File "<exec>", line 2, in <module>2行目で(問題が見つかりました)
NameErrorエラーの種類:「名前」に関するエラー
name 'prise' is not defined「prise」という名前は、知りません
Did you mean: 'price'?もしかして「price」ですか?(Pythonからの提案)

日本語にすると

2行目に「prise」と書いてありますが、そんな名前は知りません。もしかして「price」ではないですか?

見てほしい場所は、次の2つだけです。

  1. 何行目か(line 2 のところ)
  2. エラーの種類と説明(いちばん最後の行)

エラーの途中に長い文章が並んでいても、読まなくて大丈夫です。さらに、Pythonが Did you mean ...?(もしかして〜?)と答えを教えてくれることもあります。それが出たら、まず従ってみましょう。

PART 3

よく出る5つのエラー

初心者がよく出会うエラーは、実は5種類ほどです。名前を覚える必要はありません。「こういう形のメッセージが出たら、ここを疑う」という目安として、読み物のように見てください。

エラーの名前ひとことで言うとまず疑うこと
SyntaxError書き方のルール違反括弧・引用符の閉じ忘れ、: の付け忘れ、全角記号
NameError知らない名前が出てきた綴りの打ち間違い、引用符の付け忘れ
TypeError種類の合わない組み合わせ文字と数字を + でつないでいる
KeyError辞書にない見出しを呼んだ見出しの綴り、大文字・小文字
FileNotFoundErrorファイルが見つからないファイル名・置き場所・拡張子

それぞれ、実際に出して、直してみましょう。各コードは「実行」で一度エラーを出してから、直して「実行」し直します。うまく直せると「できました」と表示されます。

SyntaxError(書き方のルール違反)

直してみよう:SyntaxErrorコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます
ヒントを見る

エラーには「'(' was never closed」(括弧が閉じられていません)とあります。最後に、閉じる括弧を付けます。

答えの例を見る
print("こんにちは")

SyntaxError は「文の書き方がルールに合っていません」という意味です。原因は、ほとんどがうっかりです。

  • ( を開いたのに、) を閉じ忘れた
  • " を開いたのに、閉じ忘れた
  • if ...: の : を付け忘れた
  • 全角の記号(( ” :)を使ってしまった

字下げのミスは、IndentationError という名前で出ます。「字下げが期待されているのに、ありません」のような、字下げに関するメッセージが出たら、行頭の空白(スペース4つ)を見直しましょう。

NameError(知らない名前)

直してみよう:NameErrorコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます
ヒントを見る

「Did you mean: 'price'?」と出ています。2行目の綴りを直します。

答えの例を見る
price = 1000
print(price * 2)

NameError は、「その名前は教えてもらっていません」という意味です。変数を作る前に使っているときや、綴りを間違えているとき、文字なのに引用符を付けていないときにも出ます。

TypeError(種類の合わない組み合わせ)

直してみよう:TypeErrorコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます
ヒントを見る

文字と数字は、+ ではつなげられません。print の中で、カンマ(,)で区切って並べると、そのまま表示できます。

答えの例を見る
total = 1000
print("合計は", total, "円")

TypeError は、「その組み合わせはできません」という意味です。ここでは「文字」と「数字」を + でつなごうとしたため、エラーになりました。print の中でカンマ区切りにすれば、そのまま並べて表示してくれます。

KeyError(辞書にない見出し)

直してみよう:KeyErrorコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます
ヒントを見る

辞書に入っている見出しは「name」と「dept」です。呼び出すときの綴りを、辞書に合わせます。

答えの例を見る
employee = {"name": "田中", "dept": "営業"}
print(employee["dept"])

KeyError: 'department' は、「department という見出しはありません」という意味です。辞書の見出しの綴りと、呼び出すときの綴りが、1文字でも違うと出ます。

FileNotFoundError(ファイルが見つからない)

体験してみよう:FileNotFoundErrorコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます

FileNotFoundError は、「そのファイルが見つかりません」という意味です。このページの中には、あなたのファイルは無いので、必ずこのエラーになります。

自分のパソコンでCSVやExcelを読むときに出たら、次の3つを確認します。

  • ファイル名の綴りは合っているか(.csv や .xlsx の拡張子も含めて)
  • ファイルは、Pythonが探している場所(フォルダ)にあるか
  • ファイルを開いたままになっていないか
PART 4

自分で直せないとき:AIに渡す

どうしても直せないときは、AIに頼みましょう。そのとき、3つを渡すのがコツです。

  1. やりたいこと(何をするコードか)
  2. コード全体
  3. エラーの全文(最後の2行だけでなく、全部コピーします)

エラーの全文は、エラー表示の「エラーの全文を見る」を押すと、出てきます。

AIに渡す文章

次のPythonコードを実行したらエラーが出ました。原因と直し方を、初心者にも分かるように教えてください。

【やりたいこと】
3か月分の売上を合計して表示したい

【コード】
(ここにコードを全部貼る)

【エラーの全文】
(ここにエラーを全部貼る)

次のように比べると、渡し方の違いが分かります。

悪い例良い例
「動かない。直して」「やりたいこと」「コード全体」「エラーの全文」の3つを貼る
エラーの最後の1行だけを貼るエラーを全部貼る
コードの一部だけを貼るコード全体を貼る
まとめ

エラーが出たら、やることは5つだけ

  1. あわてない。エラーは、Pythonからのヒントです。
  2. 最後の2行を読む。
  3. 「何行目か」を確認して、その行の近くを見る。
  4. 直せなければ、やりたいこと・コード全体・エラーの全文をAIに渡す。
  5. 直したら、もう一度「実行」する。