スポンサーリンク

【Python入門10】インデントルール完全ガイド|スペースとタブの違いって?

Python入門
  1. 1. はじめに|Pythonではなぜインデントが重要なの?
  2. 2. インデントの基本ルール
    1. ◾ コロン(:)の後は必ずインデント!
    2. ◾ インデントで「かたまり(ブロック)」を作る
    3. ◾ インデントしないとエラーになる!
    4. ◾ インデントは何個分?スペース?タブ?
    5. ✅ まとめ:インデントの3つの鉄則
  3. 3. スペースとタブの違いとは?
    1. ◾ スペースとタブってなに?
    2. ◾ PEP8では「スペース4つ」がルール!
    3. ◾ タブを使っても動くの?→一応動くけど非推奨!
    4. ◾ タブとスペースを混ぜるとエラーになる!
    5. ◾ エディタの設定で「スペース」に統一しよう!
    6. ✅ まとめ:スペース vs タブ、どっちがいい?
  4. 4. 実例で学ぶインデントミス
    1. ◾ if文でのインデントミス
      1. ✅ 正しい書き方:
    2. ◾ forループでのインデントミス
      1. ✅ 正しい書き方:
    3. ◾ 関数定義の中でのミス
      1. ✅ 正しい書き方:
    4. ◾ インデントをうっかりズラした例(まぎらわしい!)
    5. ✅ こうやって直そう!インデントエラーの対策
  5. 5. エディタ設定でインデントミスを防ぐ方法
    1. ◾ おすすめエディタ:VS Code(Visual Studio Code)
    2. ◾ VS Codeで「Tabキーをスペース4つに変える」設定方法
    3. ◾ 自動整形ツールでキレイなインデントを保つ!
      1. ✅ よく使われる整形ツール
    4. ◾ VS Codeにautopep8を入れる手順(かんたん!)
    5. ◾ こんな設定もおすすめ!
    6. ✅ まとめ:ツールでインデントを味方につけよう!
  6. 6. まとめ|インデントに強くなればPythonが楽しくなる!
    1. ✅ この記事で学んだこと
    2. ✅ これからPythonを書くときは…
    3. あわせて読みたい|インデントの理解をもっと深めたい人へ
  7. よくある質問(Q&A)
    1. 関連投稿:

1. はじめに|Pythonではなぜインデントが重要なの?

Pythonを勉強し始めて、こんなエラーに戸惑ったことはありませんか?

if True:
print("こんにちは")

一見すると正しそうに見えるこのコード。
でも実行すると、次のようなエラーが表示されます。

IndentationError: expected an indented block

「え?スペルも合ってるし、構文も間違ってないはずなのに…」
そう感じた方、実はとても多いです。

このエラーの原因は、**Python特有のルールである「インデント(字下げ)」**にあります。
Pythonでは、インデントのズレ=プログラムの意味のズレ。
たった数文字の空白が、エラーの原因になることも珍しくありません。

実際、Python初心者が最初につまずくポイントの上位が
**「インデントエラー」「タブとスペースの違い」**です。

この記事では、

  • インデントとは何か?なぜPythonでは重要なのか
  • スペースとタブの違い(どっちを使うべき?)
  • IndentationErrorを確実に防ぐ書き方のルール

を、エラー例つきでやさしく解説していきます。

「インデントが怖くてPythonが進まない…」
そんな状態を今日で終わらせましょう。




2. インデントの基本ルール

Pythonでは、インデント(字下げ)がないとプログラムが動かないことがあります。ここでは、その基本ルールをわかりやすく紹介していきます!


◾ コロン(:)の後は必ずインデント!

Pythonで「条件分岐」や「繰り返し」などを使うときには、最後にコロン : をつけるのがルールです。
そして、その次の行では必ずインデントする必要があります。

たとえば if 文を書くときはこんな感じ:

if True:
print("これは正しい書き方です")

ポイントはここ👇
: をつけたら、次の行でインデントを入れる!


◾ インデントで「かたまり(ブロック)」を作る

Pythonでは、インデントがそのまま「処理のまとまり(ブロック)」を表します
これはすごく大事です!

たとえば、こんなコードを見てください。

if True:
print("A")
print("B")
print("C")

この場合、

  • 「A」と「B」は if の中の処理(インデントがある)
  • 「C」は if の外の処理(インデントがない)

になります。
つまり、True だったら A と B は表示されるけど、C はそのあとに必ず実行されます。


◾ インデントしないとエラーになる!

インデントがないと、Pythonはどの処理がどこに属しているのか分からなくなってしまいます。

たとえばこんなコード:

if True:
print("こんにちは") # インデントなし!

これは実行するとこうなります:

IndentationError: expected an indented block

Python先生に「ブロックが見つかりませんよ〜」って怒られちゃうんですね。


◾ インデントは何個分?スペース?タブ?

基本的には「スペース4つ」でインデントするのが、Pythonの公式ルール(PEP8)です。
タブも使えますが、スペースの方がおすすめです(この理由は次の章でくわしく紹介します!)。


✅ まとめ:インデントの3つの鉄則

  1. : のあとには必ずインデント!
  2. インデントでブロック(かたまり)を作る!
  3. インデントを間違えるとすぐエラー!



3. スペースとタブの違いとは?

Pythonでは、インデントを「スペース」でも「タブ」でも作ることができます。
でも、ここにはちょっとした落とし穴があるんです!


◾ スペースとタブってなに?

まず、基本から確認しましょう。

  • スペース:キーボードの「スペースキー(空白)」を1回押したときに入る空白。
  • タブ:キーボードの「Tabキー」を押すと入る、ちょっと広い空白。

見た目は似ていますが、**Pythonにとっては「別物」**です!


◾ PEP8では「スペース4つ」がルール!

Pythonには「PEP8(ペップエイト)」というコードの書き方ガイドがあります。
この中で、インデントについては次のように決められています。

✅ インデントは「スペース4つ」を使いましょう

つまり、Tabキーは使わず、スペースを4回押すのが正しいやり方です。


◾ タブを使っても動くの?→一応動くけど非推奨!

たしかに、Pythonはタブでもインデントを認識します。

if True:
print("タブでも動くことは動く")

でも…ここで問題が!


◾ タブとスペースを混ぜるとエラーになる!

インデントにタブとスペースが混ざってしまうと、エラーになることがあります。

if True:
print("スペースの行")
print("タブの行") # ← ここで混在!

このようなコードを実行すると、こんなエラーが出ます:

TabError: inconsistent use of tabs and spaces in indentation

Pythonは「同じ種類のインデントで統一してね!」と教えてくれてるんですね。


◾ エディタの設定で「スペース」に統一しよう!

インデントのミスを防ぐためには、使っているエディタ(VS Code や PyCharmなど)で、

「Tabキーを押したら、スペース4つにする」設定

をしておくのがおすすめです!


✅ まとめ:スペース vs タブ、どっちがいい?

比較項目スペースタブ
PEP8の推奨◎(推奨)×(非推奨)
エラーのリスク少ない混在でエラーに
エディタ対応多くが対応済み一部で扱いが面倒

→ 結論:スペース4つでインデントしよう!




4. 実例で学ぶインデントミス

Python初心者がよくやってしまうインデントのミス。
ここでは、実際によくあるエラー例を紹介しながら、「どこが間違いなのか?どう直せばいいのか?」をわかりやすく解説していきます!


◾ if文でのインデントミス

age = 18

if age >= 18:
print("大人です")

このコード、見た目はシンプルですが…エラーになります!

IndentationError: expected an indented block

なぜかというと、if のあとにインデントがないからです。

✅ 正しい書き方:

age = 18

if age >= 18:
print("大人です")

「if文の条件がTrueだったときに実行したい処理」は、インデントでひとつ下げるのがルールでしたね!


◾ forループでのインデントミス

for i in range(3):
print(i)

これもNG!

IndentationError: expected an indented block after 'for' statement

for の後の処理が、インデントされていないのが原因です。

✅ 正しい書き方:

for i in range(3):
print(i)

ループ処理の中身はインデントして書く。これがPythonのルールです。


◾ 関数定義の中でのミス

def hello():
print("こんにちは!")

こちらもエラーです。

IndentationError: expected an indented block

Pythonは、関数の中身もインデントで書く必要があります。

✅ 正しい書き方:

def hello():
print("こんにちは!")

◾ インデントをうっかりズラした例(まぎらわしい!)

for i in range(3):
print("スペース2個")
print("スペース4個")

このコード、見た目ではちょっとわかりにくいですが、インデントがバラバラになっています。

IndentationError: unexpected indent

Pythonはとても厳密にスペースの数を見ているので、「全部スペースでも、数が違えばエラー」です!


✅ こうやって直そう!インデントエラーの対策

  • すべてのインデントを「スペース4つ」に統一しよう
  • エディタの設定で「Tabキー=スペース4つ」にする
  • インデントの「見た目」ではなく、「実際の文字」で判断しよう(不可視文字を表示する設定も便利!)



5. エディタ設定でインデントミスを防ぐ方法

ここまで読んで「インデント、けっこう大事なんだなぁ」と感じていただけたと思います。
でも、手作業で毎回スペース4つを入れるのって、ちょっと面倒ですよね?

そんなときは、Pythonにやさしいエディタ(VS Code など)を使えば、ほぼ自動で解決できます!


◾ おすすめエディタ:VS Code(Visual Studio Code)

無料で使えて、Pythonにもバッチリ対応しているのが「VS Code」。
Python初心者からプロまで、たくさんの人が使っています。


◾ VS Codeで「Tabキーをスペース4つに変える」設定方法

  1. VS Codeのメニューから「設定(Settings)」を開く
  2. 検索窓に tab と入力
  3. Insert Spaces(タブをスペースに変換)」を ON にする
  4. Tab Size」を 4 に設定する

これだけで、Tabキーを押したら自動でスペース4つが入力されるようになります!


◾ 自動整形ツールでキレイなインデントを保つ!

Pythonのコードを一発でキレイにしてくれる「コード整形ツール」も便利です。

✅ よく使われる整形ツール

ツール名特徴
autopep8PEP8にそって自動でコードを整形
blackより厳密なルールで統一感のある整形が可能
flake8整形はせず、コードチェックだけ行う

◾ VS Codeにautopep8を入れる手順(かんたん!)

  1. Python拡張機能を入れておく(インストール済みでOK)
  2. ターミナルで以下を実行:
pip install autopep8
  1. VS Codeで「Shift + 右クリック → フォーマット」を選ぶと、インデントが整います!

◾ こんな設定もおすすめ!

  • 保存時に自動フォーマット:設定で Format On Save をONにすると、保存するたびにコードが整えられます。
  • 不可視文字の表示:スペースやタブの違いを目で確認できるようになります。

✅ まとめ:ツールでインデントを味方につけよう!

  • 手動でスペース4つは大変→エディタで自動化!
  • VS Codeの設定を整えれば、インデントミスとサヨナラできる
  • 自動整形ツールを使えば、コードの見た目もプロっぽくなる!



6. まとめ|インデントに強くなればPythonが楽しくなる!

Pythonでは、インデント(字下げ)がプログラムの命とも言える大事なルールです。

他の言語のように「{ }」でブロックを囲う代わりに、スペースやタブのインデントだけで処理のまとまりを表現するという、ちょっと変わった特徴があります。

でも、そのおかげで見た目がスッキリしたコードが書けるのもPythonの魅力なんです!


✅ この記事で学んだこと

  • Pythonでは インデントが文法の一部
  • インデントがないと IndentationError
  • スペース4つが公式推奨(PEP8)
  • タブとスペースを混ぜるとエラーになる
  • VS Codeなどのエディタで インデントミスは防げる

✅ これからPythonを書くときは…

🔸 if文やfor文のあとには「スペース4つ」でインデント
🔸 コード整形ツールでキレイに保つ
🔸 インデントが変だな?と思ったら、エディタの「不可視文字を表示」でチェック!

「インデント」でつまずいたあなたも、これで一歩前進です!
Pythonの世界をもっと楽しんでくださいね✨


あわせて読みたい|インデントの理解をもっと深めたい人へ

以下の記事も、Python初心者がつまずきやすいポイントをやさしく解説しています。あわせて読んでおくと、よりスムーズにステップアップできますよ!


よくある質問(Q&A)

Q
スペース4つって、手で毎回入力しないといけないの?
A

いいえ!エディタ(VS Codeなど)の設定で「Tabキーを押すとスペース4つ」にできます。設定しておけば、もう意識しなくて大丈夫です。

Q
すでに書いたコードのインデントを直すには?
A

autopep8black などのコード整形ツールを使うと、ボタンひとつでインデントをきれいに直してくれます。

Q
タブでも動くのに、なぜスペースの方がいいの?
A

タブとスペースが混ざるとエラーが起きやすくなるためです。PEP8という公式スタイルガイドでも「スペース4つ」が推奨されています。

※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。

※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。

スポンサーリンク