<一覧に戻る

インデントとコードブロック

Pythonを学ぶうえで絶対に避けて通れないのがインデント(字下げ・空白)です。
他のプログラミング言語では {}(波かっこ)を使ってコードの範囲を示すことが多いですが、Pythonではインデントそのものが文法の一部になっています。

つまり、インデントを正しく書かないとプログラムは実行できず、SyntaxError(文法エラー)になってしまいます。 Pythonの入門者が最初につまずきやすいポイントでもあるため、ここでしっかり理解しておきましょう。

インデントとは?

インデントとは、行の先頭に入れる空白(スペースやタブ)のことです。
Pythonでは、このインデントを利用してコードブロック(まとまり)を表現します。

例えば、関数の中の処理やif文・for文などの条件分岐やループ処理は、インデントを使って「この範囲が中身ですよ」と明確に示します。

インデントの重要性

Pythonでインデントが重要とされる理由は以下の通りです。

コードの階層(構造)を示すため → どこまでが関数の中か、どこからループが始まり終わるのかをインデントが決めています。
可読性を高めるため → コードが整理され、初心者でも理解しやすくなります。
文法上必須であるため → インデントを間違えると、その場でエラーが出てプログラムが動きません。

Pythonでは「インデントがない=そのブロックが終わった」という意味になります。

インデントのルール

Pythonのインデントには、次のようなルールがあります。

  • スペース4つを使うのが標準(エディタが自動的に変換してくれる場合が多い)
  • タブを使用することもできますが、スペースとタブを混在させないようにしましょう。
  • 同じ階層は同じ幅で揃える。インデント幅がずれていると正しく解釈されません。

このルールを理解して、サンプルコードを実行してみましょう!

サンプルコード① 条件文と関数のインデント

実際にインデントを使った関数と条件分岐の例を見てみましょう。

def greet(name):
    if name:
        print(f"こんにちは、{name}さん!")
    else:
        print("こんにちは、ゲストさん!")

greet("太郎")
greet("")

関数やif文の使い方については今後の講座で解説しまが、上記のコードでは、def文からインデントがあります。 さらにif文からインデントされており、コードが階層分けされています。

greet関数を実行する部分では、インデントがなくなりdef文が終了していることを意味しています。

サンプルコード② ループとインデント

次に、インデントを用いたループの例を見てみましょう。

for i in range(5):
    print(f"カウント: {i}")

print("ループが終了しました。")

上記のコードでは、for文がインデントされています。 printの左側が空白になっていることがわかります。

このインデントがあるおかげで、Pythonは「どこまでがループの処理か」を理解できます。

インデントでよくあるエラーと対処法

初心者がPythonでインデントを扱う際によくある間違いは以下の通りです。

1.スペースとタブを混ぜてしまう → エラーの原因になるため、設定で「スペースのみ」に統一するのがおすすめです。

2.インデントの深さが揃っていない → 同じ階層にある行は同じだけインデントしてください。

3.インデントを忘れる → if文やfor文の中でインデントを入れ忘れるとIndentationErrorになります。

これらのポイントに注意しながらコーディングしましょう!

まとめ

Pythonでは、インデントを用いることでコードの構造を明確に示します。条件文やループなど、さまざまな状況でインデントを活用することが重要です。 正しいインデントを使用することで、可読性が高く、エラーの少ないコードを書くことができます。

今後の学習においても、インデントに注意を払いながらコーディングしていきましょう。

出力結果: