このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Python入門】インデントの意味

インデントの意味

 ここでは、Pythonにおけるインデントの意味とその重要性について、順を追って解説します。インデントは、行頭に空白やタブを挿入してテキストを右側にずらすことで、コードの構造やブロックを表現するための基本的な手法です。以下では、インデントの定義、役割、正しい使い方と誤った使い方の例、そして標準コーディングスタイルについて説明します。

プログラムのダウンロード

 「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。

1.インデントとは何か

 インデント(字下げ)とは、プログラムの各行の行頭に空白またはタブを入れて、行を右側にずらすことです。多くのプログラミング言語、例えば C/C++ や Java では、インデントはコードを読みやすくするための補助的な手法として使われ、プログラムの動作自体には影響しません。しかし、Python はオフサイドルールに従っており、インデントそのものがプログラムのブロック(構造)を定めるため、正しいインデントが不可欠です。

2.Pythonにおけるインデントの役割

 Pythonでは、同じレベルの処理は同じだけ右に字下げされたコードブロックに属しているとみなされます。たとえば、if文やfor文などの制御構造の内部に記述された命令は、必ず一定の深さ(推奨は空白4個)でインデントする必要があります。インデントが揃っていない場合、Pythonインタプリタはコードの構造を正しく解析できず、IndentationError を引き起こします。

以下の表は、Pythonにおけるインデントの役割を整理したものです。

項目説明
コードブロックの明示インデントにより、if文、for文、関数定義などのブロックを明確に区別できる。
可読性の向上視覚的にコードの構造が分かるため、他人や自分自身が後からコードを見たときに理解しやすい。
エラー防止不適切なインデントはエラーを引き起こすため、正しいインデントを保つことで意図しない動作を防げる。

3.正しいインデントの例とその効果

 ここでは、「open」と「close」という文字列を交互に3回表示するプログラムを例に、正しいインデントの使い方を示します。

正しい例

for i in range(3):
    print("open")
    print("close")

 このプログラムでは、for 文のブロック内で2つの print 命令が、同じインデントレベル(空白4個分)で記述されています。そのため、ループごとに「open」と「close」が順番に表示され、実行結果は次のようになります。

open
close
open
close
open
close

4.誤ったインデントの例とその問題点

 誤ったインデントは、コードの構造を誤認させ、想定外の動作を引き起こす原因となります。以下は、インデントが、ずれている例です。

誤った例

for i in range(3):
    print("open")
      print("close")

 この例では、print("close") の前のインデントが余分(空白6個など)になっており、for 文のブロック内に統一されていません。このため、Pythonはどのブロックに属するか判断できず、以下のようなエラーメッセージを出力します。

  Cell In[2], line 3
    print("close")
    ^
IndentationError: unexpected indent

5.インデントの標準ルールとコーディングスタイル(PEP8)

 Pythonコミュニティでは、PEP8(ペップエイト)という標準コーディングスタイルが推奨されており、インデントは空白4個を使うことが基本となっています。タブキーと空白を混ぜることは避け、一貫した方法でインデントを行う必要があります。エディタによっては、タブ入力を自動的に空白4個に変換する機能もあるので、これを活用するとよいでしょう。

インデントで気をつける点

  • タブとスペースの混在: Python ではタブとスペースを混在させると、インデントの深さが一致しない可能性があり、IndentationError の原因になる。
  • 空白の個数: 標準的には 4 スペース が推奨(PEP8)。エディタの設定でタブを自動的にスペースに置き換えるようにすると、混乱を防止できる。

まとめ

 Pythonではインデントがプログラムの構造そのものを決定するため、他の言語と比べて厳格なルールが適用されます。正しいインデント(一般的には空白4個)を使用することで、コードの可読性が向上し、意図しない動作やエラーを防ぐことができます。不適切なインデントによるエラーを経験するかもしれませんが、PEP8などの標準に従うことで、安定したコーディングが実現できます。インデントの重要性とその役割を十分に理解し、適切に活用することで、より読みやすく、保守性の高いプログラムを書くことができるでしょう。