インデント | 書き方と注意点 | Python本格超入門

スポンサーリンク
スポンサーリンク
amazon
スマイルSALE
--:--:--
ad. 価格範囲を指定して商品を探せます

インデント

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コードの作成がよりスムーズに行えるようになるでしょう。