まくまくPythonノート
Python のインデントによる構造化に慣れる
2013-04-21

Python はインデントをもとに構造化が行われるという独特な言語のため、慣れまではちょっと戸惑うかもしれません。 ずっと使っていても、違和感があるという人もいます。 「括弧があった方が分かりやすい」と感じるかもしれません。 でも次のルールをちゃんと頭に入れるとスッキリします。

  • コロンが行末に付くとブロックの開始(次の行はインデントする必要がある)
  • インデントを戻したらブロックの終了
if k < 10:
    print('AAA')
print('BBB')

上記の例では、一行目がコロンで終了しているので、二行目はインデントする必要があります。 でも、下記の例では、一行目がコロンで終了していないので、二行目からも同じレベルで記述していきます。

if k < 10: print('AAA')
print('BBB')

構文解析するプログラムから見ると、コロンで終わっている行の次の行がちゃんとインデントされているかを確認するだけで、すぐに構文のミスを発見することができます。 ブロックの終了を示したいときはインデントを戻すだけでよい(閉じかっこや end などの特別なキーワードを記述しなくてよい)ので、プログラマのタイピング量の削減にもなっています。

構文解析するプログラムにも優しいし、プログラマにも優しい。 素敵じゃないですか。

2013-04-21