Pythonで発生する『IndentationError: unexpected indent』エラーの解決方法

Sponsored Link

はじめに

Pythonでプログラムを実行する際、「IndentationError: unexpected indent」というエラーが表示されました。
Pythonはインデント(字下げ)に厳格な言語のため、意図しない空白やタブが原因でこのエラーが発生します。本記事では、このエラーの詳細な原因と解決方法を解説します。

エラーの詳細

発生するエラー例

以下のようなコードを実行するとエラーが発生する場合があります。

def greet():  
print("Hello, world!")
print("Welcome to Python!")

実行結果:

File "script.py", line 3  
print("Welcome to Python!")
^
IndentationError: unexpected indent

エラーの意味

このエラーは、コードのインデント(空白やタブ)が不適切な位置にあることを示しています。
Pythonはブロックの始まりや終了をインデントで区別するため、ルールに従わないインデントがあるとエラーをスローします。

主な原因:

  1. タブとスペースが混在している。
  2. 意図しない場所でインデントが使用されている。
  3. 同じブロック内でインデントの幅が異なっている。

解決方法

以下の手順を実行することでエラーを解決できます。

1. インデントの統一

Pythonでは、インデントにスペース4つを使用することが推奨されています。

エラーを修正したコード例

def greet():  
print("Hello, world!")
print("Welcome to Python!")

上記のコードでは、すべてのインデントをスペース4つに統一しています。

タブとスペースの混在を確認

ターミナルで以下のコマンドを実行すると、コード内にタブ文字が含まれているか確認できます:

grep -P "\t" script.py  

もしタブが含まれていれば、タブをスペースに置き換えます。

2. エディタ設定を確認する

使用しているエディタの設定を確認し、自動的にインデントを統一するように設定します。

Visual Studio Codeの場合

  1. ファイル > 基本設定 > 設定 を開きます。
  2. 「Editor: Tab Size」を4に設定します。
  3. 「Insert Spaces」を有効にします(タブの代わりにスペースを挿入)。

3. 自動フォーマットツールを使用する

フォーマットツールを使用すると、インデントエラーを効率よく解決できます。

Blackを使用したコード整形

Blackは、Pythonコードを自動的に整形するツールです。

  1. Blackをインストールします:
pip install black  
  1. コードを整形します:
black script.py  

これで、コード全体のインデントが自動的に修正されます。

4. 他のインデントエラーの可能性を確認する

エラーが解消されない場合、別のインデント関連のエラーが含まれている可能性があります。

よくあるインデントエラー

  • 空行のインデント: 空行にもインデントがあるとエラーになります。
  • ネストされたブロックのインデント不足: ネストの深さに応じた適切なインデントが必要です。

例:

if True:  
print("This is incorrect.") # インデントが不足

修正後:

if True:  
print("This is correct.")

まとめ

IndentationError: unexpected indent」は、Pythonの厳格なインデントルールによって発生するエラーです。以下の手順で解決できます:

  1. インデントをスペース4つに統一する。
  2. エディタ設定を確認し、自動整形機能を利用する。
  3. Blackなどのツールでコードを整形する。

これらを実践することで、インデントエラーを効率よく防ぐことが可能です。

Welcome to Python.org
The official home of the Python Programming Language
タイトルとURLをコピーしました