インデントを設定する
Pythonを学び始めた初心者が最初に必ずつまずくポイントが インデント(字下げ) です。 Pythonは「インデントでコードの構造を表す」言語なので、インデントを正しく設定できるかどうかが、プログラムが動くかどうかを左右します。 ここでは、インデントの意味、正しい設定方法、よくあるエラー、実務での注意点までをステップバイステップで丁寧に解説します。
インデントとは何か
インデントとは、コードの行頭に入れるスペース(またはタブ)のことです。 Pythonでは、インデントが「この行はどのブロックに属しているか」を示す役割を持ちます。
インデントが重要な理由
- Pythonはインデントで処理のまとまりを判断する
- インデントが間違うと構文エラーになる
- 読みやすさ・保守性・安全性が大きく変わる
- PEP 8(Python公式スタイルガイド)でも最重要項目として扱われている
インデントは「Pythonの文法そのもの」です。
インデントの基本ルール(最重要)
スペース4つが標準
Pythonでは スペース4つ が公式推奨です(PEP 8)。
def greet(name):
print(f"Hello, {name}")
Pythondefの次の行はスペース4つで字下げ- タブは使わない(混在すると危険)
ブロックを作るときにインデントする
Pythonでは、コロン : の後にインデントが必要です。
if score >= 80:
print("Excellent")
Pythonifの行の末尾に:- 次の行はスペース4つでインデント
インデントを使った基本例題
条件分岐
age = 20
if age >= 18:
print("成人です")
else:
print("未成年です")
Pythonループ
for i in range(3):
print(i)
Python関数
def add(a, b):
return a + b
Pythonインデントが間違っている例(初心者がよくやるミス)
ミス1:インデントが足りない
if True:
print("Hello") # ❌ エラー
Pythonミス2:インデントが多すぎる
if True:
print("Hello") # ❌ 不自然で読みづらい
Pythonミス3:タブとスペースが混ざっている
if True:
print("Hello") # スペース
print("World") # タブ(混在) ❌
PythonPythonはタブとスペースの混在を嫌います。 エディタの設定で「インデントはスペースに統一」するのが安全です。
インデントエラーを深掘りして理解する
Pythonの代表的なエラー:
IndentationError: unexpected indent
IndentationError: expected an indented block
unexpected indent
「そこにインデントがあるのはおかしい」という意味。
expected an indented block
「ここはインデントが必要なのに、されていない」という意味。
インデントエラーは「Pythonが構造を理解できないとき」に発生します。
インデントを正しく設定するための実務テクニック
① エディタの設定で「スペース4つ」に統一する
VS Code、PyCharmなどでは設定できます。
② 自動整形ツールを使う
- black
- autopep8
これらはインデントを自動で整えてくれるため、初心者でもPEP 8準拠のコードが書けます。
③ コードブロックの開始と終了を意識する
Pythonでは {} がないため、インデントがブロックの境界です。
インデントのテンプレート(そのまま使える)
条件分岐テンプレート
if condition:
# 処理を書く
pass
else:
# 別の処理
pass
Pythonループテンプレート
for item in items:
# item を使った処理
pass
Python関数テンプレート
def function_name(param):
# 処理を書く
return param
Pythonインデントを使った練習問題(初心者向け)
問題
次のコードを正しいインデントに直してください。
def greet(name):
print("Hello")
print(name)
Python解答
def greet(name):
print("Hello")
print(name)
Pythonインデントはセキュリティにも関係する(重要)
読みやすいコードは、セキュリティ上のミスを減らします。
読みにくいコードは危険
def check(user):
if user == "admin":
return True
else:
return False
Pythonインデントが乱れていると、
- 条件分岐の意図が誤解される
- バグが見つけにくい
- セキュリティチェックの漏れが起きやすい
読みやすいコードは安全
def check(user):
if user == "admin":
return True
else:
return False
Pythonまとめ
- Pythonはインデントでコードの構造を表す
- 標準はスペース4つ(PEP 8)
- タブとスペースの混在は危険
- インデントエラーは「構造が壊れている」サイン
- 自動整形ツールを使うと安全
- 読みやすいインデントはセキュリティにも直結する
初心者のうちは、まず スペース4つで統一する ことを徹底するだけで、Pythonコードの安定性が大きく向上します。
