Pythonには、「インデント」という他のプログラミング言語にはない書き方があります。今回は、インデントとは何なのかについて解説します。
インデント(Indent)
インデントとは、Pythonを使ってコードを書く際、特定の場面で行に空白を入れることです。
既にPython以外のプログラミング言語を学んだことがある人であれば分かるかもしれませんが、Pythonは文法がとてもシンプルで、少ない行でコードを書くことができます。
例として、C++とPythonで同じforループを使った処理を書いてみます。
C++
#include <iostream>
int main(){
int sum = 0;
for(int i = 0; i < 100; i++){
sum += i;
}
}
Python
sum = 0
for i in range(100):
sum += i
2つのコードを見比べてみれば一目瞭然ですが、Pythonの方がC++よりも少ない行数であることが分かります。
特にforループでは、C++は3行あるのにもかかわらずPythonでは2行で書くことができます。
これは、Pythonがインデントという記法を採用しているためです。
C++では、forループの始まりと終わりを決定するために波括弧{}を使っています。一方で、Pythonではこのような記号は使われません。
C++における波括弧の代わりに、Pythonではインデントと呼ばれる空白を入れることでforループの始まりと終わりを決めています。
上記コードを見ると、「sum += i」の部分だけ行に空白が空いていることが分かると思います。
この空白こそが「インデント」です。これがあることによって、forループの処理がどこで行われているかがすぐに分かります。
インデントに気を付けないとエラーになる
インデントを考えずにコードを書き、実行するとエラーになってしまいます。
例:IndentationErrorが発生する
sum = 0
for i in range(100):
sum += i
>> IndentationError: expected an indented block
インデントを意識していないとエラーになってしまうことがしばしばあるので、ループ処理や条件分岐、関数やクラスの作成の際は特に注意して書くようにしましょう。
(ただ、Kaggle NotebookやGoogle Colaboratory等でコードを書く場合は、自動的にインデントが付けられるので、コードを不必要に弄らなければエラーになる心配は少ないです。)