プログラミングの学習、本当にお疲れ様です!
本やWebサイトのチュートリアル通りに一生懸命コードを書いた(あるいはコピペした)はずなのに、実行ボタンを押した瞬間……
IndentationError: expected an indented block
こんな真っ赤な英語のエラーメッセージが出て動かなくなり、パニックになっていませんか?
「一文字も間違っていないはずなのに、どうして!?」と絶望的な気持ちになりますよね。
でも、安心してください。あなたのプログラミングの才能がないわけでは絶対にありません。
実はこのエラー、Pythonを始めたばかりの人が100%の確率で経験する「ただのスペースのズレ」を知らせているだけなのです。
この記事では、Python特有の「インデント(字下げ)」のルールと、一瞬でエラーを解決する魔法の手順をお伝えします。たった3分読むだけで、今のモヤモヤが「なるほど!」というスッキリ感に変わりますよ。
ステップ1:そもそも「IndentationError」って何?原因を知ろう
「Indentation(インデント)」とは、日本語で「字下げ」のことです。
文章を書くとき、段落の始まりを一文字分下げるのと同じように、プログラミングでもコードの行頭に空白(スペース)を空けることがあります。
C言語やJavaといった他のプログラミング言語では、コードのまとまり(ブロック)を { } という記号で囲んで表現します。しかし、Pythonはとてもシンプルさを好む言語です。記号を使わずに、「行頭の空白(インデント)の深さ」だけでコードのまとまりを判断するという独自のルールを持っています。
つまり、Pythonにとって「空白」は、ただの隙間ではなく「ここからここまでがセットの命令ですよ」と伝えるための重要なメッセージなのです。
そのため、空白の数が間違っていたり、ズレていたりすると、Pythonが「どういうまとまりか分からないよ!」と混乱してしまい、「IndentationError」を出してしまうというわけです。
ステップ2:よくある「3つの失敗例」と正しいコード例
では、具体的にどんな時にエラーになるのでしょうか?初心者が陥りやすい「3つの罠」を見ていきましょう。
❌ 失敗例①:そもそもスペースが入っていない
if文(もし〜なら)やfor文(〜を繰り返す)の次の行は、必ずインデントを下げる(右にズラす)必要があります。
# ❌ エラーになる書き方(expected an indented block)
if score >= 80:
print("合格です!") # ← ここに空白がない!
# ⭕️ 正しい書き方
if score >= 80:
print("合格です!") # ← 行頭に「半角スペース4つ」を入れる
❌ 失敗例②:スペースの数がバラバラ、または「タブ」と「スペース」が混ざっている
見た目は綺麗に揃っていても、パソコン内部では「スペースキーで空けた空白」と「Tabキーで空けた空白」は全くの別物として扱われます。これが混ざるとエラーになります。
# ❌ エラーになる書き方(unexpected indent)
if score >= 80:
print("合格です!") # ← Tabキーで字下げしている
print("おめでとう!") # ← スペースキーで字下げしている(混在はNG!)
❌ 失敗例③:見えない罠「全角スペース」が混入している
これが一番厄介です!日本語入力モードのままスペースキーを押すと「全角スペース」が入力されますが、Pythonは「半角スペース」しかインデントとして認めてくれません。
(※全角スペースが混ざると invalid character in identifier という別のエラーになることもあります)
# ❌ エラーになる書き方
if score >= 80:
print("合格です!") # ← 全角スペースが入っている(見た目では気づきにくい!)
ステップ3:もう迷わない!一瞬で解決する直し方と予防策
原因がわかれば、直し方はとっても簡単です。以下の手順で修正してみましょう。
🛠 直し方の手順:一度消して、半角スペース「4回」
- エラーメッセージの
line 〇〇という部分を見て、エラーが起きている行を確認します。 - その行の一番左端(行頭)にある空白を、Backspaceキーで一旦すべて消し去ります。(文字が左端にピタッとくっつく状態にする)
- キーボードを「半角英数」入力モードにします。
- スペースキーを「4回(トントントントン)」押して、揃え直します。
これだけで、あっという間にエラーは消え去ります!Pythonの公式ルール(PEP8)でも、「インデントは半角スペース4つ」が推奨されているので、これだけ覚えておけば完璧です。
🛡 予防策:エディタの「空白表示設定」をオンにする
全角スペースやTabキーの混入を防ぐために、VSCode(Visual Studio Code)などのエディタを使っているなら、「空白文字を視覚化する」設定をしておきましょう。
- VSCodeの設定画面を開く(歯車マーク > 設定)。
- 検索窓に
Render Whitespaceと入力します。 - 設定項目を
all(すべて表示)に変更します。
こうすると、半角スペースが「・・・・」のように小さな点で表示されるようになります。もし全角スペースが入ってしまったら、点が表示されない四角い空白になるため、一目で「あ、全角が混ざってる!」と気づけるようになりますよ。
まとめ:エラーはあなたが前に進んでいる証拠!
いかがでしたか?今日お伝えした大切なポイントは2つです。
- Pythonのコードのまとまり(ブロック)は「半角スペース4つ」で揃える!
- エラーが出たら、行頭の空白を一度全部消して、半角スペースを4回打ち直す!
赤いエラー画面を見るとドキッとしてしまいますが、エラーは決して「失敗」ではありません。あなたが自分でプログラミングの環境を作り、実行のボタンを押すという「大きな挑戦」をした証拠です。
プロのエンジニアでも、毎日エラーと戦いながらコードを書いています。インデントのルールをマスターしてこのエラーを自力で解決できたあなたは、もうPythonの重要な基礎を一つクリアしました!素晴らしい一歩です。
無事にエラーが消えてプログラムが動いたら、次は「if文の条件(数字)」や「printの中の言葉」を自分の好きなように書き換えて遊んでみてくださいね。
これからも、楽しくPython学習を進めていきましょう!
コメントを残す