インデント

Pythonではインデントが非常に重要です。他のプログラミング言語では中括弧{}でコードブロックを区切ることが多いですが、Pythonではインデントを使ってコードブロックを示します。この章では、Pythonのインデントの基本的なルールや注意点を詳しく説明します。
インデントの役割
インデントとは、コードの先頭にスペースを入れて字下げすることです。Pythonではこのインデントを使って、条件分岐やループの中の処理など、ブロック構造(どこからどこまでがひとまとまりの処理か)を示します。インデントが適切に行われていないと、Pythonはコードを正しく解釈できずエラーが発生します。
Pythonにおけるインデントのルール
Pythonでは、次のインデントルールに従う必要があります。
| ルール | 説明 |
|---|---|
| インデントの深さ | 1レベルのインデントには4つのスペースを使用することが推奨されています。 |
| ブロック内のインデント統一 | 同じコードブロック内の全ての行で、インデントは同じ量で統一される必要があります。異なる量のインデントを混在させるとエラーになります。 |
| タブとスペースの混在を避ける | Pythonでは、インデントにタブとスペースを混ぜることは避けるべきです。特にエディタの設定で、スペースを自動的に挿入する設定をするのがおすすめです。 |
インデントの具体例
以下は、インデントを使った基本的なPythonコードの例です。
# 条件分岐の例
x = 10
if x > 5:
print("xは5より大きい")
if x == 10:
print("xは10です")
else:
print("xは5以下です")
上記の例では、if文の内部で、インデントにより処理を区切っています。ifの中にさらにifがある場合は、さらに深いインデント(スペース8個分)が必要です。
追加解説:他の言語(中括弧を使う言語)との見た目の比較
Pythonのインデントによるブロック構造がどれだけすっきりしているか、JavaScriptなどの「中括弧 {}」を使う言語と比較してみましょう。Pythonは記号を減らすことで、誰が書いても同じように綺麗で見やすいコードになるよう設計されています。
■ 中括弧を使う言語の例(JavaScriptなど)
// 記号で範囲を指定するため、閉じ忘れるとエラーになります
if (x > 5) {
console.log("5より大きい");
}
■ Pythonの場合(コロンとインデントのみ)
# 行末の「:」の次の行から、インデントを下げてブロックを開始します
if x > 5:
print("5より大きい")
インデントエラーの例
次に、インデントが正しくない場合に発生するエラーの例です。
# インデントエラーの例
x = 10
if x > 5:
print("xは5より大きい")
print("これはエラーになります") # インデントが不揃い(半角スペースが1つ多い)
このコードでは、2行目のprint文のインデントが不揃いなため、IndentationErrorが発生します。全ての行でインデントの数を完全に統一する必要があります。
追加解説:インデントを「忘れた」場合のエラー例
不揃いな場合だけでなく、条件分岐(if)やループ(for)などの直後で、インデントをまったく下げなかった場合にも別パターンのエラーが発生します。コロン(:)の次の行は、必ずインデントを下げるお約束になっています。
# インデントを忘れた場合のエラー例
x = 10
if x > 5:
print("インデントがないためエラーになります") # 本来は下げる必要がある
この場合は「ここにインデントされたブロックがあるはずです」という意味の IndentationError: expected an indented block というメッセージが添えられてプログラムが停止します。
Pythonのインデントに関するヒント
- エディタを活用: VSCodeやPyCharmなどのコードエディタを使用して、インデントの自動調整機能を有効にすると、インデントのミスを防ぐことができます。Tabキーを押すだけで自動的に半角スペース4つ分に変換してくれる設定が一般的です。
- 関数やクラスで整理: インデントが深くなりすぎるとコードが読みにくくなります。関数やクラスを活用して、ロジックを整理し、インデントを適切に保ちましょう。
- PEP8スタイルガイドを参照: Pythonの公式スタイルガイドであるPEP8では、インデントを4つのスペースで行うことが推奨されています。このガイドラインに従うと、可読性の高いコードを書くことができます。
まとめ
Pythonのインデントは、コードの構造を示す重要な要素です。適切なインデントを使うことで、コードの読みやすさと保守性が向上します。スペースとタブを混在させず、統一されたインデントスタイルを保つことが、エラーの防止につながります。インデントに慣れれば、Pythonコードの作成がよりスムーズに行えるようになるでしょう。