0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】Pythonでありがちエラーとその対処法

Posted at

はじめに

Pythonは人気なプログラミング言語ですが、初心者から上級者まで陥りやすいエラーが多数存在します。
今回は私が遭遇した事例を基にエラーとその対処方法を備忘録を兼ねて記事にします。

1. IndentationError: インデント(字下げ)に関するエラー

def greet():
print("Hello!")
エラーメッセージ
IndentationError: expected an indented block
原因

Pythonはインデント(スペースやタブ)で処理のブロックを示す言語です。上記のコードではdef greet():のあとにインデントがないためエラーになります。

対処法
def greet():
    print("Hello!")  # ← ここをスペース4つ or タブで字下げ

2. NameError: 変数名が見つからないエラー

発生例
print(score)
エラーメッセージ
NameError: name 'score' is not defined
原因

変数scoreがまだ定義されていない(またはタイプミス)状態で呼び出しています。

対処法
score = 100
print(score)

先に変数を定義しましょう。もしくは、変数名が正しいか確認しよう(例:socreなどの打ち間違いも多い)。

3. TypeError: 型が合っていないエラー

発生例
age = 25
print("あなたの年齢は" + age + "歳です")
エラーメッセージ
TypeError: can only concatenate str (not "int") to str
原因

文字列(str)と数値(int)をそのまま「+」で連結しようとしたため。

対処法
print("あなたの年齢は" + str(age) + "歳です")

またはf-stringを使うのが便利

print(f"あなたの年齢は{age}歳です")

4. IndexError: インデックスの範囲外アクセス

発生例
colors = ["red", "green", "blue"]
print(colors[3])

エラーメッセージ

IndexError: list index out of range
原因

リストのインデックスは0から始まるので、colors[3]は存在しない要素を指定しています。

対処法
print(colors[0])  # red
print(colors[-1])  # blue(最後の要素)

インデックスを使う前にlen(colors)で要素数を確認しよう。

5. SyntaxError: 文法エラー

発生例
if x == 5
    print("x is 5")
エラーメッセージ
SyntaxError: expected ':'
原因

iffor、defなどの文は「:(コロン)」が必要です。

対処法
if x == 5:
    print("x is 5")

6. ValueError: 値の型はOKだけど中身がダメ

発生例
num = int("abc")
エラーメッセージ
ValueError: invalid literal for int() with base 10: 'abc'
原因

int()に文字列を渡すこと自体はOKだが、「数字っぽい文字列」でなければ変換できません。

対処法
num = int("123")  # OK

入力値を処理する前に.isdigit()などでチェックすると安心

s = "123"
if s.isdigit():
    num = int(s)

まとめ

エラー エラーの内容 対処法
IndentationError インデントに関するエラー スペースを4つ開けるorタブで字下げ
NameError 変数が定義されていないorタイプミス 変数を定義するorスペルチェック
TypeError 間違った型を渡してしまった 文字列型と整数型を混ぜない
IndexError インデックスの範囲外アクセス インデックスは0から始まるので要素数を確認
SyntaxError 文法エラー 正しい文法か確認
ValueError 引数が不適切 適切な引数を渡す

エラーは初心者のつまずきポイントでもあり、成長のチャンスでもあります。
エラーは問題解決の手掛かりになります。恐れずに、エラーメッセージをよく読み効率的かつ適切に対処していきましょう。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?