MeWrite Docs

IndentationError: unexpected indent の原因と解決策

概要

Pythonでコードのインデント(字下げ)が不正な場合に発生するエラー。スペースとタブの混在、余分なインデント、インデント不足が主な原因。

エラーメッセージ

  File "main.py", line 5
    print("hello")
    ^
IndentationError: unexpected indent
  File "main.py", line 3
    return x + 1
TabError: inconsistent use of tabs and spaces in indentation

原因

  1. スペースとタブの混在: エディタの設定が統一されておらず、同じファイル内でスペースとタブが混在している
  2. 余分なインデント: ブロックの開始位置がずれて、不要な字下げが入っている
  3. コピペ時のインデントずれ: Webサイトや他ファイルからコードをコピーした際に、インデントが崩れる

解決策

1. エディタでインデントを可視化する

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# VS Codeの設定例
# settings.json に追加
# "editor.renderWhitespace": "all"
# "editor.tabSize": 4
# "editor.insertSpaces": true

# 修正前(タブとスペース混在)
def greet(name):
	print("Hello")  # タブ
    print(name)      # スペース4つ

# 修正後(スペース4つに統一)
def greet(name):
    print("Hello")
    print(name)

2. autopep8やblackでフォーマットする

1
2
3
4
5
6
7
# autopep8でインデント修正
pip install autopep8
autopep8 --in-place --aggressive main.py

# blackで統一フォーマット
pip install black
black main.py

3. Pythonの-ttオプションでタブ混在を検出する

1
2
# タブとスペースの混在を警告として表示
python -tt main.py

関連エラー

関連エラー

Python の他のエラー

最終更新: 2026-03-19