Pythonは、プログラムのブロック構造をインデント(字下げ)で表現します。字下げには、半角スペースを使っても、タブを使ってもいいけれども、混ぜてはいけない、というのが常識になっています。では、混ぜるとどうなるのか・・・・・やってみました!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | >>> def a(): ... print("kk") #半角スペース2個 ... print("kk") #タブ1個 File "<stdin>", line 3 print("kk") ^ IndentationError: unexpected indent >>> def a(): ... print("kk") #半角スペース4個 ... print("kk") #タブ1個 File "<stdin>", line 4 print("kk") ^ IndentationError: unexpected indent >>> def a(): ... print("kk") #半角スペース8個 ... print("kk") #タブ1個 ... |
タブ1個は、半角スペース8個分として処理されるようです。つまり、スペースとタブを混用しようとすると、タブ=半角スペース8個にする必要があるのです。スペース2個分にするのか、4個分にするのかなら悩む余地があるのですが、スペース8個分は問題外ですね。。。。。もっとも、タブと半角スペースを混ぜること自体が非常識なのが・・・・・・
まとめ
- タブ1個は、半角スペース8個分
- 混ぜるな危険!