Skip to the content.

最終更新日:2026年9月19日

まず結論

Pythonは、インデント(字下げ)の深さでコードブロックの範囲を表すプログラミング言語です。

基本情報技術者試験では、次の切り分けができれば判断しやすくなります。

{ } でブロックを表す
→ JavaScript・Perlなど

インデントでブロックを表す
→ Python

end でブロックを閉じる
→ Ruby

試験中に「インデントの深さでクラス・関数・条件文などの範囲を示す」とあれば、まずPythonを考えます。


直感的な説明

Pythonでは、見た目の字下げがそのままプログラムの構造を表します。

score = 80

if score >= 60:
    print("合格")
    print("おめでとう")

print("判定終了")

この場合、2つの print は同じ深さなので、どちらも if の処理です。

if score >= 60:
    ├─ print("合格")
    └─ print("おめでとう")

print("判定終了")
↑ if の外

Pythonでは、インデントを変えると処理の所属先そのものが変わるのがポイントです。


定義・仕組み

Pythonではインデントが構文の一部

Python公式ドキュメントでは、行頭の空白からインデントレベルを決定し、その変化を INDENTDEDENT として扱う仕様が定められています。

つまり、インデントは単にコードを読みやすくするための飾りではなく、文をどのブロックに所属させるかを決める構文上の意味をもちます。

条件分岐

if 条件:
    処理1
    処理2
else:
    処理3

処理1処理2 は同じ深さなので、同じ if ブロックに属します。

関数

def hello():
    print("Hello")
    print("Python")

関数本体もインデントで表します。

クラス

class Car:
    def run(self):
        print("run")

クラスの中、さらにその中のメソッドというように、インデントが深くなるほど階層も深くなります。


科目Aでどう出る?

科目Aでは、言語ごとの記述方法を比較して該当する言語を選ばせる問題に注意します。

Pythonを疑うキーワード

インデント
字下げ
コードブロック
深さで範囲を表す
↓
Python

特に、

インデントの深さによって、クラスや関数、条件文などのコードブロックの範囲を指定する

という説明ならPythonを考えます。

JavaScript・Perlとの違い

JavaScriptやPerlでは、一般に {} でコードブロックを囲みます。

if (condition) {
    doSomething();
}

字下げをすると読みやすくなりますが、Pythonとは違い、ブロックを決める中心は波括弧です。

Rubyとの違い

Rubyでは、ifdef などで始まったブロックを end で閉じます。

if condition
  puts "OK"
end
問題文の特徴 考える言語
インデントの深さでブロックを指定 Python
{ } でブロックを囲む JavaScript・Perlなど
end でブロックを閉じる Ruby

どんな場面で使う?

Pythonのインデントは、条件分岐、繰返し、関数、クラスなど、処理のまとまりを表す場面で使います。

for i in range(3):
    if i == 1:
        print("1です")
    print(i)

print("終了")

この例は、次の構造です。

for
├─ if
│  └─ print("1です")
└─ print(i)

print("終了")
↑ for の外

Pythonを読むときは、文字だけでなく左端の位置も見るのが重要です。


よくある誤解・混同

インデントは読みやすくするためだけ?

違います。

Pythonではインデントが文法上の意味をもちます。

JavaScriptなど
→ インデントは主に可読性のため
→ ブロックは { } で表す

Python
→ インデントそのものがブロックを表す

Pythonは必ず4スペースでなければ動かない?

「4スペース」は、Pythonのスタイルガイドである PEP 8の推奨です。

一方、

インデントで文をグループ化する

ことはPythonの言語仕様です。

インデントでブロックを決める
→ Pythonの言語仕様

1段を4スペースにする
→ PEP 8の推奨スタイル

タブとスペースを混ぜてもよい?

避けるべきです。

Pythonでは、インデントの解釈が一貫しないようなタブとスペースの混在は TabError になる場合があります。

初心者のうちは、スペース4個で統一すると分かりやすいです。

Pythonならどんな場所でもインデントが必要?

すべての行を字下げするわけではありません。

ifforwhiledefclass など、ブロックを作る構文の本体をインデントします。


まとめ(試験直前用)

  • Pythonはインデントの深さでコードブロックを表す
  • インデントは見た目だけではなく構文の一部
  • { } でブロックを表すならJavaScript・Perlなどを疑う
  • end で閉じるならRubyを疑う
  • 「4スペース」はPEP 8の推奨であり、「インデントでブロックを表す」という言語仕様とは別
インデント
→ Python

{ }
→ JavaScript・Perlなど

end
→ Ruby

「インデントの深さで範囲を決める」と出たら、まずPython。

© 2024-2026 stemtazoo. All rights reserved.