<一覧に戻る

インデントとコードブロック

Pythonは、インデント(字下げ)を用いてコードの構造を示します。インデントは、コードブロックを形成するために不可欠であり、構文の一部として機能します。ここでは、インデントとコードブロックの重要性について学び、実際にサンプルコードを使って理解を深めましょう。

インデントの重要性

Pythonでは、インデントによりコードの階層を示します。例えば、関数や条件文、ループなどの内部にあるコードは、インデントを使って示します。インデントを適切に使用しないと、SyntaxError(文法エラー)が発生します。

インデントのルール

  • 通常、スペース4つ分のインデントを使用します。
  • タブを使用することもできますが、スペースとタブを混在させないようにしましょう。

サンプルコード: 条件文と関数

以下に、インデントを使用した条件文と関数の例を示します。

def greet(name):
    if name:
        print(f"こんにちは、{name}さん!")
    else:
        print("こんにちは、ゲストさん!")

greet("太郎")
greet("")

コードの解説

  1. def greet(name): - greetという名前の関数を定義しています。引数nameを受け取ります。
  2. if name: - nameが空でない場合、次の行を実行します。この行もインデントされています。
  3. print(f"こんにちは、{name}さん!") - nameが空でない場合に実行されるコードです。この部分はif文のブロックに属します。
  4. else: - nameが空の場合に実行されるコードブロックの始まりです。こちらもインデントされています。
  5. print("こんにちは、ゲストさん!") - elseのブロックに属するコードです。

サンプルコード: ループ

次に、インデントを用いたループの例を見てみましょう。

for i in range(5):
    print(f"カウント: {i}")

print("ループが終了しました。")

コードの解説

  1. for i in range(5): - 0から4までの数をカウントするループを開始します。
  2. print(f"カウント: {i}") - 各ループの中で、現在のカウント値を表示します。この行はforループのブロックに属します。
  3. print("ループが終了しました。") - ループが終了した後に実行されるコードです。この部分はループの外にあり、インデントされていません。

サンプルコード: ネストされたコードブロック

最後に、条件文とループを組み合わせたネストされたコードブロックの例を示します。

def count_and_greet(names):
    for name in names:
        if name:
            print(f"こんにちは、{name}さん!")
        else:
            print("こんにちは、ゲストさん!")

names_list = ["太郎", "", "花子"]
count_and_greet(names_list)

コードの解説

  1. def count_and_greet(names): - 複数の名前を受け取る関数を定義します。
  2. for name in names: - namesリスト内の各名前に対するループを開始します。
  3. if name: - 各名前が空でないかをチェックします。この行はforループのブロック内にあり、さらにネストされています。
  4. print(f"こんにちは、{name}さん!") - nameが空でない場合に実行されるコードです。
  5. else: - nameが空の場合に実行されるコードブロックの始まりです。
  6. print("こんにちは、ゲストさん!") - elseのブロックに属するコードです。

まとめ

Pythonでは、インデントを用いることでコードの構造を明確に示します。条件文やループなど、さまざまな状況でインデントを活用することが重要です。正しいインデントを使用することで、可読性が高く、エラーの少ないコードを書くことができます。今後の学習においても、インデントに注意を払いながらコーディングしていきましょう。

出力結果: