Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでインデントが重要な理由とは?ブロック構造の基本をわかりやすく解説

Pythonにおけるインデントの役割

プログラムを書いていると、複数の文をひとまとまりの「ブロック」として扱いたい場面が頻繁にあります。クラス、関数、if文などの条件分岐、for文やwhile文などのループといった構造では、「どこからどこまでがその構造に属するのか」という範囲(スコープ)を明確に定義しなければなりません。

他のプログラミング言語との違い

ブロックの範囲を示す方法は、言語ごとに異なります。たとえばC言語やC++では、中括弧 { } で囲まれた部分がブロックとして扱われます。一方、Pythonでは統一されたインデント(字下げ)によってブロックを表現します。波括弧を使わず、見た目の整列そのものがプログラムの構造を決める点が、Pythonの大きな特徴です。

インデントによるブロックの基本的な書き方

Pythonでは、ブロックの開始を示すためにコロン(:)を使用します。ブロック内の最初の文、およびそれ以降の文は、通常より一段深い(ただし統一された)空白、すなわちインデントを入れて記述します。そして、ブロックを終了するときは、インデントを元の位置へ戻す(デデントする)ことで示します。

次の例は、Pythonでのインデントの使い方を示したものです。

num = int(input("enter number"))
if num%2 == 0:
    if num%3 == 0:
        print("Divisible by 3 and 2")
    else:
        print("divisible by 2 not divisible by 3")
else:
    if num%3 == 0:
        print("divisible by 3 not divisible by 2")
    else:
        print("not Divisible by 2 not divisible by 3")

この例では、外側の if 文の中にさらにネストした if〜else 構造が含まれており、階層が深くなるほどインデントも一段深くなっていることが確認できます。インデントを見るだけで、プログラムの論理構造が視覚的にも把握できるのがPythonらしさといえます。

インデント使用時の注意点

重要なのは、同じレベルにあるブロック内のすべての文は、必ず同じインデント幅で揃えることです。インデントが不揃いだと IndentationError(インデントエラー)が発生し、プログラムは実行できません。

また、Pythonの公式スタイルガイドである PEP 8 では、1レベルあたり半角スペース4つ分のインデントが推奨されています。タブとスペースを混在させるとエラーや予期しない動作の原因になるため、プロジェクト内でどちらかに統一しておくことが大切です。

  1. Ghidra(ギドラ)とは?NSA開発のリバースエンジニアリングツールが重要な理由

    Ghidra(ギドラ)とは? 新しいウイルスに対応するうえで重要な作業のひとつが、その仕組みを解明することです。そのためにはリバースエンジニアリング(逆向き解析)が必要になります。米国国家安全保障局(NSA)はこの種の作業を日常的に行っているため、それを支援する独自ツール「Ghidra(ギドラ)」を開発しました。 ちなみに発音は「ギードラ」です。2019年3月5日、サンフランシスコで開催されたRSAカンファレンスにて、無料かつオープンソースとして一般公開されました。NSA上級顧問ロバート・ジョイス氏によるGhidraの発表資料も閲覧できます。 Ghidraの公開がなぜ画期的なのかを理解する

  2. Pythonのif文を抜ける(終了する)方法とは?

    Pythonのif文から抜け出すことはできる?結論から言うと、Pythonではifブロック単体を抜けることはできません。C言語などにある「break文」でif文を終了するような書き方は、Pythonではサポートされていないためです。ifブロックの中にbreakキーワードを記述すること自体は可能ですが、その場合は必ずループ処理(for文やwhile文)の内部である必要があります。つまり、breakが終了させるのはあくまで「ループ」であり、if文そのものではありません。if文を途中で抜けたい場合の代替手段1. 条件式の見直しif文は条件が真の場合のみ処理を実行する構造のため、そもそも「途中で抜ける