結論:
Pythonでは インデントと空白が文法の一部 です。
PEP 8では「スペース4つ」が基本ルールであり、読みやすさと一貫性のために守る必要があります。
なぜインデントが大切なのか?
Pythonは { }
の代わりに インデントでブロックを表現します。
インデントがずれていると、エラーやバグの原因になります。
#良い例:
if True:
print("OK")
#悪い例(エラーになる):
if True:
print("NG")
👉 他の言語では許される曖昧さも、Pythonでは厳格に禁止されます。
PEP 8 のインデントルール
- インデントは スペース4つ(タブは使用しない)
- ネストが深くなりすぎたら、関数に分ける
良い例:
for i in range(5):
for j in range(3):
print(i, j)
悪い例(インデントがバラバラ):
for i in range(5):
for j in range(3):
print(i, j)
よくある間違い
- タブとスペースの混在
→ エディタ設定で「タブをスペース4つに変換」を有効にする - 行末の余計な空白
→ 見えないゴミとして残るので、ツール(flake8, black)で削除 - ネストが深すぎる
→ インデントが8レベル以上になる場合、関数やクラスに分割するのが望ましい
実務での工夫
- エディタ設定
- VSCodeやPyCharmで「インデント=スペース4つ」をデフォルトに
- 自動整形ツール
- black を使えば、インデントや空白を自動で修正してくれる
- チームルール
- プロジェクト全体で同じ設定を共有することが大切
まとめ
- Pythonでは インデント=文法 なので厳格に守る必要がある
- PEP 8は「スペース4つ」を推奨、タブは避ける
- 空白の入れ方は「読みやすさ」を優先し、余計なスペースは入れない
- ツールを活用して「気づいたら守れている」状態を作るのがおすすめ