Pythonで初心者が最も悩まされるエラーの1つが IndentationError(インデントエラー) です。
「スペースとタブが混ざっただけでエラーになるの?」と思うかもしれませんが、Pythonはインデント(行頭のスペース)でコードの構造を表現する言語。そのため、少しのズレでも実行エラーになります。
本記事では、IndentationErrorの代表的な原因と、すぐ試せる対処法を分かりやすく解説します。
🧩 IndentationErrorとは?
Pythonではインデント(スペースやタブ)がコードブロックを区切る仕組みになっています。
| 言語 | ブロック表現方法 |
|---|---|
| Python | インデント(スペース・タブ) |
| Java / C / JavaScript | {}(波括弧) |
そのため、インデントがズレるとPythonは構造を理解できずエラーになります。
⚠️ よくあるIndentationErrorの原因
✅ 1. タブとスペースの混在
|
1 2 3 |
if True: print("Hello") print("World") # ←タブとスペース混ざってる |
対処
- タブを使わず スペース4つを基本にする
- エディタ設定で「タブをスペースに変換」をON
✅ 2. インデントの深さが不一致
|
1 2 3 |
if True: print("OK") print("NG") # ←スペース数が違う |
対処
- 同じ階層は同じスペース数に統一(4推奨)
✅ 3. コロン(:)の付け忘れ
|
1 2 |
if True print("Hello") # ←ifの末尾に:が必要 |
対処
- 制御構文の後は必ず「:」
対象:if/for/while/def/class/try/except
✅ 4. コピペで不可視文字が混入
WebやWord文書からの貼り付けで不可視キャラが混ざり、Pythonが誤認識するパターン。
対処
- コードを一度エディタに貼り直す
⇧ Shift + ⌘ Cmd + V(プレーンテキスト貼り付け)活用
インデントを修正してもPythonが起動しない場合、
Windowsの環境設定やPATHの問題が原因になっていることがあります。
Pythonが起動しない場合に考えられる原因と対処法は、以下の記事で詳しく解説しています。
🛠 IndentationErrorを防ぐVSCode設定
✅ タブ → スペース自動変換
VSCode右下設定
|
1 |
Spaces: 4 |
設定ファイル例:
|
1 2 |
"editor.tabSize": 4, "editor.insertSpaces": true |
✅ ルーラーを表示(インデント確認用)
|
1 |
"editor.rulers": [4, 8, 12, 16] |
💡 よくあるエラー例と修正
❌ エラー例
|
1 |
IndentationError: unexpected indent |
意味:不要なインデントがある
|
1 2 |
print("start") print("indent error") # ✗ |
✅ 修正
|
1 2 |
print("start") print("indent ok") |
❌ エラー例(expected an indented block)
|
1 |
IndentationError: expected an indented block |
意味:インデントが必要な行の次がインデントされてない
|
1 2 |
if True: print("error") # ✗ |
✅ 修正
|
1 2 |
if True: print("ok") |
📌 困ったらチェックリスト
| 確認項目 | 対処 |
|---|---|
| タブを使ってない? | スペース4つに統一 |
| インデント数は揃ってる? | 同階層は同じ深さ |
| コロン忘れてない? | if: for: など確認 |
| Webからコピペした? | プレーンテキスト貼り付け |
❓ よくある質問(Q & A)
- IndentationErrorはなぜPythonでよく発生するのですか?
-
Pythonはインデント(行頭の空白)でコードの構造を判断する言語のためです。
タブとスペースが混在したり、インデントの深さが揃っていないと、Pythonは処理の範囲を正しく認識できずIndentationErrorが発生します。 - IndentationErrorの「unexpected indent」とは何を意味しますか?
-
「unexpected indent」は、本来インデントが不要な場所に空白が入っていることを意味します。
例えば、処理の先頭行や関係ない行にインデントがあると、このエラーが表示されます。 - IndentationErrorを防ぐ一番簡単な方法は何ですか?
-
スペース4つでインデントを統一し、タブを使用しないことが最も効果的です。
また、VSCodeなどのエディタで「タブをスペースに変換する設定」を有効にすると、IndentationErrorの発生を大幅に防げます。
🎯 まとめ
| ポイント | 内容 |
|---|---|
| IndentationErrorとは | インデントズレによる構文エラー |
| 最大の原因 | タブとスペース混在 |
| 対策 | スペース4つ・VSCode設定 |
| チェック | コロン、階層、不可視文字 |
Pythonのインデントは慣れれば強力なルールです。
見やすく美しいコードを書く第一歩にもなるので、ぜひ意識してみてください。


