PR

Pythonのインデントルールについて詳しく解説します

アイキャッチ画像

Pythonで開発するときはインデントを揃えることが重要で、他言語には無いルールなので、初学者の方で戸惑う方もいらっしゃいます。

しかし、凄くシンプルなルールなので難しく考える必要はありません。

本記事では、Pythonのインデントについて深堀りして解説します。

ターゲット読者

Python初学者の方

この記事でわかること

Pythonのインデントルールなどの詳細情報

インデントとは

インデントは、日本語で「字下げ」です。

インデントとは、文の行頭に空白を挿入して、先頭の文字を右側へ移動させることです。

例えば、下記の4行目と6行目はインデントされています。

number = 7

if number > 5:
    print('5より大きいです。')
else:
    print('5以下です。')

Pythonのインデントルール

Pythonではインデントは非常に重要です。

なぜなら、Pythonではインデントが揃っているコードをブロックとして認識するからです。

先ほどの例をもう一度見てみます。

number = 7

if number > 5:
    print('5より大きいです。')
else:
    print('5以下です。')

3行目と5行目はif文のブロック、4行目と6行目はif文内の処理のブロックになっています。

出力結果は、

5より大きいです。

正常に出力されています。

Pythonではインデントがずれるとエラーになる

例を下記のように書き換えたとします。

number = 7

if number > 5:
print('5より大きいです。')
else:
    print('5以下です。')

これを実行すると

  File "test.py", line 3
    print('5より大きいです。')
        ^
IndentationError: expected an indented block

インデントエラーが起きます。

すでに説明したように、この例ではif文内の処理のインデントを揃えないといけないのに、違反しているからです。

このように、Pythonではインデントを揃えないとエラーになるので、複数人で開発したとしてもコードの統一感がある可読性の高いコードになります。

ちなみに、実務では複数人で開発することがほとんどです。

Pythonでインデントするときはタブ?スペース?

疑問を持つ人
疑問を持つ人

Pythonにはインデントを揃えるルールがあるのは分かった。ところで、空白を空けるためにはタブとスペースどちらを使うべきなの?

上記質問にお答えすると、インデントが揃えばタブとスペースのどちらでも良いです。

しかし、タブを使って開発していて異なる環境にコピペをしたとき、インデントがずれてエラーが起きることがあります。

スペースであれば環境が異なっても同じように表示されます。

そのため、スペースを使ってインデントをしたほうが確実ではありますね。

VScodeなどのエディタでは、自動的にインデントを補完してくれる機能があるので、複数人で開発するときは使うエディターを統一すると、インデントで悩まなくて済みます。

インデントの空白はいくつ空けると良い?

Pythonのコーディング規約であるPEP8には以下のように書いてあります。

1レベルインデントするごとに、スペースを4つ使いましょう。

引用:PEP8日本語版 

スペース4つ分でインデントが基本で、右に寄りすぎてキツくなりそうならスペース2つ分が良いかと思います。

エディタのインデント自動補完も、スペース4つ分になっていることがほとんどです。

Pythonのインデントルール まとめ

Pythonでは必ずインデントを揃えないといけないため、コードの可読性が上がる一方、コードの記述自体は正しくても、インデントがずれているとエラーが起きるという面倒さがあります。

しかし、慣れると面倒さを感じることも少なくなります。

本記事が、Python初学者の方の「はじめの一歩」を後押しできれば幸いです。

以上、『Pythonのインデントルールについて詳しく解説します』でした。