Python:インデントが気持ち悪い
- 慣れるしかない。慣れると楽ちん。
- C言語などで真面目にインデントしてる人ならすぐに慣れます。
- タブとスペースが混在しても大丈夫。ただし、タブストップは8文字に設定すること。
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文字。 viの設定は、こんな感じです。
set sw=2 ts=8 ai
