#navi_header|Python| 分かりやすくタブ文字を "(\t)", 空白をアンダースコア "_" で表記しますが、インデントで面白いことが出来ます。 if True: (\t)print 'abc' # TAB文字1つでインデント ________print 'def' # 空白8つでインデント → abc def ちゃんと動きます。何となく、ブロックって同じ文字で同じインデントだと思ってましたので、これはちょっと面白い。 ちなみに、空白4つにしてしまうと駄目なんです。 if True: (\t)print 'abc' # TAB文字1つでインデント ____print 'def' # 空白4つでインデント → File "t_hoge.py", line 5 print 'def' ^ IndentationError: unindent does not match any outer indentation level 言語仕様リファレンスに「インデント」というそのものズバリのページがありまして、それを読むとどうやら ''TAB文字は空白に置換され、その文字数は最初の非空白文字までの空白が8の倍数になるように調整される'' そうです。 http://www.python.jp/doc/release/ref/indentation.html : >まず、タブは (左から右の方向に) 1 つから 8 つのスペースで置き換えられ、 >置き換え後の文字列の終わりの位置までの文字数が 8 の倍数になるように調整されます >(Unixで使われている規則と同じになるよう意図されています)。 >次に、空白文字でない最初の文字までのスペースの総数から、その行のインデントを決定します。 そんなわけで、TAB文字と空白インデントを混在させることは可能です。可能です、が・・・TAB文字を4桁とか2桁表示にしているエディタでは、見た目滅茶苦茶になって可読性が非常に悪くなります。 混ぜることは出来ますが、基本、混ぜるな危険ということで。 ちなみにPythonにくっついてくるライブラリは4文字空白インデントになっています。特に規約で定める必要がなければ、それに合わせれば良いと思います。 #navi_footer|Python|