2ちゃんねるまとめで、Pythonの話題がちょいと出てきてて、コードを書きやすいとか色々おべっか臭いレスが目立っていたけど、その中にインデントに関する話題があったので、ちょっと調べてみた。話によるとloopとかで{}がないらしく、インデントが結構重要らしいです。

for文であえてインデントをかえてみる

以下コードを書いてみた

for i in range(2)
 print(i)
  print(i)

///実行後
  File "test2.py", line 3
    print(i)
    ^
IndentationError: unexpected indent

ほう。こしゃくな。エラーと抜かす。英語はわからんが、私にもわかる。インデントが悪いと言ってることに。。。

インデントを修正して再度実行

for i in range(2):
  print(i)
  print(i)

///実行結果
0
0
1
1

今度は文句を言われなかった。今度は、先頭の半角スペースをタブにして実行してみるとエラーなし。
先頭を全角スペースという、マルチバイトをあえてまぜてみる

  File "test2.py", line 2
     print(i)
         ^
SyntaxError: invalid character in identifier

よくわからんが、文字が問題あると言ってるように見える。当たり前か。

結論

ブロックごとのインデントルールさえ一致していれば、基本的にいいらしい。タブでも半角スペースでも。

よかったね。

コメント