IndentationError: expected an indented block

Python
本ページはプロモーションが含まれています

はじめに

今回はPython独特の文法に関するエラーです。Pythonはコードの可読性や見やすさを重視しています。
そのためインデント(スペースやタブ)を使います。今回はそのインデントで起きるエラー「IndentationError: expected an indented block」についてです。

エラーの原因と対処方法、サンプルコードも載せているので参考にしてください。

エラーの原因と対処法

エラー

まず発生するエラーは

IndentationError: expected an indented block

というものです。
日本語で訳すと
インデントエラー:インデント(字下げ)されたブロックが期待されます
となります。

原因とサンプルソース

原因

このエラーは、冒頭でも書きましたがPythonがインデント(スペースやタブによる字下げ)を使用してコードブロックを認識する言語であるために起きます。
通常は制御フロー文(例:if文、for文、while文、関数定義など)の後の行が適切にインデントされていないときに発生します。

次にエラーが発生する例とそれを修正したソースコードの例を見てみます。

エラーが発生するソースコード

エラーが発生するのは次のようなインデントが出来ていないケースです。

if True:
print("Hello, world!")

これを実行すると

    print("Hello, world!")
    ^
IndentationError: expected an indented block

と2行目でエラーになります。

修正したソースコード

次は修正したコードです。
IfやForなどの中に入るコードはインデント(字下げ)が必要です

if True:
    print("Hello, world!")

これを実行すると

Hello, world!

となります。

Tips

このようなエラーが発生しやすいのは、新たに制御フロー文を書いたり、既存のコードを編集したりしたときです。特にタブとスペースを混在させてインデントすると、見た目では区別がつかないために問題が生じやすいです。
そのため、Pythonの公式スタイルガイドであるPEP 8では、インデントにはスペース4つを推奨しています。

PythonのIDEやエディタの多くは、自動的に適切なインデントを挿入する機能や、タブとスペースの混在を警告する機能があります。これらを活用すると、このようなエラーを避けられます。

さいごに

今回はpythonのインデントによるエラーについてです。
Tipsで書きましたが、途中でエディタを変えて編集するとスペースとタブが混在したりすることがあるので注意です。

参考でソースをコピーして使ったりマージする際に別のコードを持ってくる時などは注意したほうがいいですね。

この記事がお役に立ったのなら嬉しいです。
最後までお読みいただきありがとうございます。

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました