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 文 についてご説明しました。