Python の if 文

プログラミングにおいて、if 文は制御フローにとてもよく使われるステートメントです。

ここでは Python の if 文 についてご説明します。

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

if 文では、条件式が True(真)の時に、指定した「ひとまとまりのコード(コードブロック)」を実行します。

Python では、コードブロックであることを示すのにインデントを使います。

他のプログラム言語では、if 文の後に { } などで、条件式が True の時に実行するコードを囲ったりしますが、Python ではインデントだけで実行するコードブロックを表現します。

インデントに使うスペースは何個入れても大丈夫ですが、同じコードブロックに使うスペースの数は同じでなくてはいけません。

Python のドキュメントでは、インデントレベルごとに、4つのスペースを使うことが推奨されています。


Python の if 文の基本

if 文は条件式が True(真)を返す時に続くコードブロックを実行します。

Python の if 文の構文は次の通りです。

if [条件式A]:
    [コードブロックA]
elif [条件式B]:
    [コードブロックB]
elif [条件式C]:
    [コードブロックC]
else:
    [コードブロックD]

上から順番に条件式を評価していき、最初に True になった箇所のコードブロックを実行します。それ以降に条件式が True になるものがあっても実行されません。

elif は else if という意味で、if と else の間に何個続けてもかまいません。

どの条件式も True にならず、else がある場合は else のコードブロックが実行されます。

elif と else は必須ではないので、なくても大丈夫です。


それでは if 文を使ってみましょう。

次の if 文を実行すると結果はどうなるでしょうか。

a = 4

if a == 5:
    print("a は 5 です。")
elif a != 4:
    print("a は 4 ではありません。")
elif a > 2:
    print("a は 2 より大きいです。")
else:
    print("上の条件どれにもあてはまりません。")

上から順番に条件式を評価していき、a == 5 は False、a != 4 も False、a > 2 で True になるので、elif a > 2: に続く print 関数が実行されます。

a は 2 より大きいです。

if 文 - 複数の条件式

and や or 演算子を使って、複数の条件式を合わせて判断することもできます。

例えば、a が 4 ではなくて、6 より大きい時に何かを実行したいのであれば、and を使って次のようにします。

a = 7

if a != 4 and a > 6:
    print("a は 4 ではなくて、6 より大きいです。")
else:
    print("a は 4 か、6 以下です。")

7 は 4 ではなくて、6 より大きいので if の条件式が True になり、実行結果は次のようになります。

a は 4 ではなくて、6 より大きいです。

a を 5 に変更して再実行してみましょう。

a = 5

if a != 4 and a > 6:
    print("a は 4 ではなくて、6 より大きいです。")
else:
    print("a は 4 か、6 以下です。")

今度は a != 4 は True ですが、 a > 6 が False になり、and 演算子を使うと全て True の時だけ全体が True になるので、else のコードブロックが実行されます。

a は 4 か、6 以下です。

if 文 - リスト (list) に値が含まれているか

Python の if 文で、リストに指定した値が含まれているかどうかを条件式に使うには in をつかって、次のようにします。

names = [ "Tanaka", "Suzuki", "Sato", "Yamada"]

if "Suzuki" in names:
  print("Suzuki はリストに存在します。")
else:
  print("Suzuki はリストに存在しません。")

実行結果です。 Suzuki はリストの要素に存在するので、「Suzuki はリストに存在します。」と出力されています。

Suzuki はリストに存在します。

if 文 - 辞書 (dicionary) にキー (key) が存在するか

Python の if 文で、辞書に指定したキーが含まれているかどうかを条件式に使うには in をつかって、次のようにします。

person = {
    "name": "Suzuki",
    "age": 15,
    "gender": "male"
}

if "gender" in person:
  print("gender というキーが存在します。")
else:
  print("gender というキーは存在しません。")

実行結果です。 person という名前の辞書オブジェクトの中に gender というキーが存在するので、if のコードブロックが実行されています。

gender というキーが存在します。

以上、Python の if 文 についてご説明しました。

© 2024 やさしい Python 入門