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のインデントルールについて詳しく解説します』でした。