wiki:PythonIntroIndent

Version 2 (modified by sgk, 13 years ago) (diff)

--

Python:インデントが気持ち悪い

Pythonと言えばインデント。Pythonを始める人が一番最初にとまどうのがインデントでしょう。

どうもね、たとえばC言語ならこんなふうに書くところが、

for (int i = 0; i < 100; ++i) {
  for (int j = 0; j < 100; ++j) {
    if (i * j % 10 == 0)
      printf("%d %d\n", i, j);
  }
}

Pythonでは、

for i in range(100):
  for j in range(100):
    if i * j % 10 == 0:
      print "%d %d" % (i, j)


って書く。

どうも、しまりがなくて落ち着かない。 でもこれは慣れるしかないです。 そのうち気にならなくなりますよ。 C言語でもインデントをしっかり書いている人なら、とくに悩むことはないでしょう。慣れ、だけです。

エディタによっては、スペース(空白文字)が多くなると自動的にタブに変換してしまうことがあります。 また、タブとスペースとを、見た目では判断できないことが多いです。 こんなエディタを使っていてもPython大丈夫だろうか?そう悩む人もいるでしょう。 答えは、大丈夫です。 Pythonは、タブストップを8文字と仮定して、内部的に空白に変換してから取り扱います。 だから、エディタのタブストップが8文字に設定してあれば、タブとスペースが混在しても全く問題起きません。 タブストップが8文字じゃ絶対イヤという人は、いろいろとややこしいのでご注意ください。

ちなみに、当社のコーディング規約では、インデントの幅は2文字。 タブストップは8文字。