はじめに
今回は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で書きましたが、途中でエディタを変えて編集するとスペースとタブが混在したりすることがあるので注意です。
参考でソースをコピーして使ったりマージする際に別のコードを持ってくる時などは注意したほうがいいですね。
この記事がお役に立ったのなら嬉しいです。
最後までお読みいただきありがとうございます。