Pythonエラー対策10選|初心者がつまずく例と解決法

    ノートパソコンでPythonエラーが表示され困惑する女性キャラクターと、黒板の前で解決方法を説明するロボット先生のイラスト。

    こんにちは、Python初心者のハナマルコです。

    Pythonを始めたばかりの頃って、ちょっとコードを書いただけなのに、エラーが出て「うわっ!なにこれ!?」って焦ることありませんか?

    今回は、そんな私のために(そしてあなたのためにも)、代表的なエラー10個をチャッピー先生に解説してもらいます。間違ったコードとエラーメッセージ、そして修正後のコードも紹介します。

    前回のスプレッドシート連携でもエラーに悩まされましたが・・・
    PythonとスプレッドシートでTODO管理

    この記事の内容
    • Python初心者がよく遭遇する代表的なエラー10個とその原因、修正方法がわかる。
    • エラーメッセージの読み方やコード修正のコツを学べる。
    • エラーを恐れずに、次回から冷静に対処できるようになるヒントが得られる

    実践シリーズを初回から読みたい方:
    Pythonって何?初心者にやさしく解説

    読みたいところに飛べる目次

    エラーの種類(代表的なもの10個)

    ここでは、初心者がよく遭遇するエラーとその解説を行います。間違ったコードとエラーメッセージ、そして修正後のコードも紹介していきます。

    SyntaxError: invalid syntax

    チャッピー先生

    これは文法エラーです。例えば、カンマを忘れたり、括弧を閉じ忘れたりすると出ます。

    間違ったコード

    print("こんにちは"

    エラーメッセージ:

    SyntaxError: invalid syntax

    修正後のコード:

    print("こんにちは")

    # 実行結果
    こんにちは

    ハナマルコ

    こんな小さなミスでエラーが出ちゃうんですね!

    IndentationError: unexpected indent

    チャッピー先生

    インデント(字下げ)が予期せぬ位置にあると出るエラーです。Pythonはインデントを使ってブロックを示すから、ここを間違えるとエラーになります。

    間違ったコード:

      print("Hello")

    エラーメッセージ:

    IndentationError: unexpected indent

    修正後のコード:

    print("Hello")

    実行結果

    # 実行結果
    Hello

    ハナマルコ

    インデントってめっちゃ大事なんですね…!

    このエラーは家計簿計算スクリプトを作った時にも遭遇しました。
    Pythonで家計簿と残業代を自動計算

    NameError: name '〇〇' is not defined

    チャッピー先生

    定義していない変数や関数を使おうとすると出るエラーです。例えば、messageという名前を定義していないのに使ってしまった場合です。

    間違ったコード:

    print(message)

    エラーメッセージ:

    NameError: name 'message' is not defined

    修正後のコード:

    message = "やっほー"
    print(message)

    実行結果

    # 実行結果
    やっほー

    ハナマルコ

    あっ、使う前に定義しないといけないんですね!

    TypeError: can only concatenate str (not "int") to str

    チャッピー先生

    文字列と数字をそのまま足そうとすると、型が違うってエラーが出ます。str()で数字を文字列に変換してあげる必要があります。

    間違ったコード:

    age = 10
    print("私は" + age + "歳です")

    エラーメッセージ:

    TypeError: can only concatenate str (not "int") to str

    修正後のコード:

    age = 10
    print("私は" + str(age) + "歳です")

    実行結果

    # 実行結果
    私は10歳です

    ハナマルコ

    数字と文字列、組み合わせるには型を合わせないといけないんですね!

    ValueError: invalid literal for int() with base 10

    チャッピー先生

    文字列が数字として解釈できない場合に出るエラーです。int()関数に不適切な文字列を渡してしまった時に起こります。

    間違ったコード:

    num = int("abc")

    エラーメッセージ:

    ValueError: invalid literal for int() with base 10

    修正後のコード:

    num = int("123")
    ハナマルコ

    数字っぽくないと変換できないんですね。

    ZeroDivisionError: division by zero

    チャッピー先生

    ゼロで割ることはできないから、このエラーが出ます。数学的にも論理的にも、ゼロで割ることは避けましょう。

    間違ったコード:

    print(10 / 0)

    エラーメッセージ:

    ZeroDivisionError: division by zero

    修正後のコード:

    number = 0
    if number != 0:
        print(10 / number)
    else:
        print("割れません!")

    実行結果

    # 実行結果
    割れません!

    ハナマルコ

    ゼロ割りはダメなんですね!数学の基本です!

    IndexError: list index out of range

    チャッピー先生

    リストの範囲外を指定した時に出るエラーです。リストのインデックスは0から始まるので、範囲を超えないように気をつけてください。

    間違ったコード:

    fruits = ["りんご", "バナナ"]
    print(fruits[2])

    エラーメッセージ:

    IndexError: list index out of range

    修正後のコード:

    fruits = ["りんご", "バナナ"]
    if len(fruits) > 2:
        print(fruits[2])
    else:
        print("そんな果物はないよ")

    実行結果

    # 実行結果
    そんな果物ないよ

    ハナマルコ

    リストの長さを確認してからアクセスするんですね!

    AttributeError: '〇〇' object has no attribute '△△'

    チャッピー先生

    そのオブジェクトが持っていないメソッドを呼び出そうとしたときに出るエラーです。例えば、文字列にはappend()メソッドは使えないです。

    間違ったコード:

    text = "こんにちは"
    text.append("!")

    エラーメッセージ:

    AttributeError: 'str' object has no attribute 'append'

    修正後のコード:

    text = "こんにちは"
    text += "!"
    ハナマルコ

    文字列にはappend()が使えないんですね!リスト用の方法でしたか。

    KeyError: '〇〇'

    チャッピー先生

    辞書のキーに存在しないものを指定すると出るエラーです。辞書にキーがない場合は、get()メソッドを使うと安全に処理できます。

    間違ったコード:

    data = {"name": "ハナマルコ"}
    print(data["age"])

    エラーメッセージ:

    KeyError: 'age'

    修正後のコード:

    print(data.get("age", "年齢情報なし"))

    実行結果

    # 実行結果
    年齢情報なし

    ハナマルコ

    get()を使うと、キーがなくてもエラーにならないんですね!

    ModuleNotFoundError: No module named '〇〇'

    チャッピー先生

    モジュールがインストールされていないときに出るエラーだよ。必要なモジュールがあれば、pip installを使ってインストールしてね。

    間違ったコード:

    import pandas

    エラーメッセージ:

    ModuleNotFoundError: No module named 'pandas'

    修正後のコード:

    pip install pandas

    エラー修正のコツ

    エラーを素早く修正するためには、以下のポイントに気をつけると効果的です。

    1. エラーメッセージをよく読む
      エラーメッセージは問題の場所と原因を示してくれるヒントです。まずはエラー内容をよく読みましょう。
    2. コードを一行ずつ確認する
      コード全体を見て修正しようとすると、つい見逃しがちです。特にエラーが出た行を重点的に確認しましょう。
    3. エラーの再現を試みる
      同じエラーを繰り返してみて、どのパターンでエラーが発生するかを確認することで、原因がつかめやすくなります。

    エラーメッセージをChatGPTに相談するときのコツはこちら:
    ChatGPTのズレを防ぐ質問のコツ

    エラー解決にはどのAIが最適?比較記事をチェック:
    ChatGPT、Gemini、Claude比較!初心者向け使い分けガイド

    まとめ

    Pythonでエラーが出ると、最初はびっくりしますよね。でも、エラーメッセージは「ここが間違ってるよ!」って教えてくれるヒントなんです。

    今回紹介した10個のエラーは、初心者がよく出会うものばかり。どれも、原因がわかればちゃんと直せます。

    少しずつ慣れていけば、エラーが出ても「お、今回はどこが間違ってるかな?」と前向きに考えられるようになりますよ。

    焦らず一歩ずつ、チャッピー先生に教えてもらい、ハナマルコと一緒に成長していきましょう!

    最後まで読んでいただき、ありがとうございました!

    エラー解決がもっとスムースになる秘訣は?:
    ChatGPTに名前を付けたら学習効率UP?

    Googleアカウントの設定で困ったら:
    iPhoneだけでGoogleアカウント登録&パスキー設定ガイド

    当ブログは基本的にリンクフリーです。リンクを行う場合の許可や連絡は不要です。

    ノートパソコンでPythonエラーが表示され困惑する女性キャラクターと、黒板の前で解決方法を説明するロボット先生のイラスト。

    この記事が気に入ったら
    いいね または フォローしてね!

    よかったらシェアしてね!
    • URLをコピーしました!
    • URLをコピーしました!
    読みたいところに飛べる目次