Python 入門 | 文 | 文とインデントの関係

文とインデントの関係

プログラミング言語では、値と演算が基本である。もう 1 つ重要なものが制御である。

命令を順番に実行するだけでは、限られたプログラムしか作れない。状況に応じて特定の処理を実行したり、指定した回数だけ処理を繰り返したりして流れを制御すると、より複雑なプログラムを作成できる。

プログラムの動きを指示するために用意されているものが文である。中でも、プログラムの流れを制御するものを制御文と呼ぶ。

Python の構文には、インデントという特徴がある。インデントとは、行の開始位置を空白やタブで右に移動することである。

Python では、多くの文でインデントを使ってブロックを表現する。ある条件で処理を実行する場合、その処理を右にインデントする。同じインデント位置にある行は、その文に属する処理だと判断される。

ブロックを終了するときは、インデントを元の位置に戻す。Python は行の開始位置に基づいて、その行がどの文の処理であるかを認識する。

次の例で構造を確認しよう。

Python の文の記述

通常の文 ......
 1
      1 の処理 ......
      1 の処理 ......
      1 の中にある文
         入れ子になった文の処理 ......
         入れ子になった文の処理 ......
      1 の処理 ......
 2
      2 の処理 ......
通常の文
通常の文
...... 省略 ......

このように行の開始位置を変えて文の構造を表す。インデントを間違えると構文エラーになることがある。

Python のインデントには、一般にタブではなく空白を使う。空白の幅そのものは構文で固定されていないが、4 文字が広く使われている。重要なのは一貫性である。

空白が少なすぎると構造が読みにくくなり、ミスも起こりやすい。空白が多すぎると行が右に移動しすぎる。扱いやすい幅を選び、一貫して使おう。