Pythonの処理ブロックは半角空白、タブの数を合わせてインデント(ネスト)させる
PythonはJavaやC言語と違い、処理のブロックを「{ }」ではなく、半角空白、タブの数でインデント(ネスト)して管理します。
Pythonでのブロック管理方法
Pythonではブロックの管理をネストで行います。
インデント(ネスト)は半角空白文字やタブの数で管理します。
i = 0 if i == 0 : print( "i == 0" ) else : print( "i != 0" )
上記の例ではif文のインデント(ネスト)を半角空白4つでネストしています。
半角空白文字の数が異なるとエラー
半角空白文字やタブの数でブロックを管理しているので、同じブロック内で半角空白やタブの数が異なるとエラーになります。
i = 0 if i == 0 : print( "この行は半角空白文字4つ" ) print( "この行は半角空白文字5つ" ) else : print( "この行は半角空白文字4つ" )
この文を実行するすると
File "main.py", line 5 print( "この行は半角空白文字5つ" ) ^ IndentationError: unexpected indent
というエラーになり実行できません。
空白とタブが混ざってもエラー
見た目に同じインデント(ネスト)になっていても、半角空白文字とタブが混ざるとエラーになります。
i = 0 if i == 0 : print( "この行はタブ文字1つ" ) print( "この行は半角空白文字4つ" ) else : print( "この行は半角空白文字4つ" )
この文を実行すると
File "main.py", line 4 print( "この行は半角空白文字4つ" ) ^ IndentationError: unindent does not match any outer indentation level
まとめ
Pythonではブロックをインデント(ネスト)数で管理するので、使う半角空白文字やタブの数を統一してコーディングする必要があります。
リンク