- Python の if 文の書き方が知りたい!
- ワンライナーで書くにはどうやったらいい?
このような疑問にお答えします。
if
文はプログラムの条件分岐を制御するもので、for
に並んで最重要概念の一つです。
本記事では以下の内容を解説します。
- if 文の基本的な書き方
- if 文の応用的な使い方
ごく基本的な事項を中心に解説していきます。
if 文の基本的な書き方
まずはif
文の基本から解説します。
- if のみを使った書き方
- if と else を使った書き方
- if, elif, else を使った方法
それぞれ解説していきます。
if のみを使った書き方
ある条件に合致した場合のみ処理を行うには、以下のようにif
節を書きます。
number = 5
if number == 5:
print("number は 5 です。")
if
の後に「条件式」と「コロン(:
)」を続けて、条件に合致した場合の処理はインデントを開けて書きます。
if と else を使った書き方
「条件に合致した場合」と「条件に合致しなかった場合」の処理を指定するには、if
とelse
を併用します。
number = 5
if number == 5:
print("number は 5 です。")
else:
print("number は 5 以外です。")
if, elif, else を使った方法
if
に続けてさらに別の条件を続ける場合には、elif
を使います。
number = 5
if number == 5:
print("number は 5 です。")
elif number == 6:
print("number は 6 です。")
上記の例ではまずnumber
が5
かどうかを判定し、続いてnumber
が6
であるか判定しています。
もし条件をさらに追加したい場合には、elif
を増やします。
number = 5
if number == 5:
print("number は 5 です。")
elif number == 6:
print("number は 6 です。")
elif number == 7:
print("number は 7 です。")
最後にどのif, elifにも当てはまらない場合の条件分岐を付け加えたい場合には、最後にelseを書きます。
number = 5
if number == 5:
print("number は 5 です。")
elif number == 6:
print("number は 6 です。")
elif number == 7:
print("number は 7 です。")
else:
print("number は 5, 6, 7 以外です。")
if 文の応用的な使い方
演算子を使って条件分岐をさせる
if文ではTrueの場合にインデント内が実行されます。
そうすると、条件式に真偽に関する式を入れることで条件分岐させることができます。
例えば次の通り。
is_ok = "OK"
if is_ok == "OK":
print("OK でした")
これを応用して、以下のような演算子を使って条件分岐させることもできます。
number = 5
if number >= 5:
print("number は 5 以上の値です。")
演算子には、例えば以下のようなものが使えます。
演算子 | 意味 |
---|---|
a == b | aとbが等しい |
a != b | aとbが等しくない |
a < b | aはbより小さい |
a > b | aはbより大きい |
a <= b | aはb以下 |
a >= b | aはb以上 |
a is b | aとbは同じオブジェクト |
a is not b | aとbは異なるオブジェクト |
よりシンプルに if 文を書く方法
より Pythonic な書き方として、以下のようなものがあります。
is_ok = True
if is_ok:
print("OK です!")
条件式がTrue
ならif
節が実行されます。
反対に、False
の場合に実行したい場合には以下のようにします。
is_ok = False
if not is_ok:
print("NG です!")
if
の後にnot
を書くことで、否定を表すことを利用しました。
if…in…でリストに要素を含むかどうかを判定
あるリストに特定の要素を含むかどうか判定するにはin
を使います。
num_list = [1, 2, 3, 4, 5]
if 1 in num_list:
print("1 を含みます。")
もちろん、not
を使うことで「含まない」ことも表現できます。
num_list = [1, 2, 3, 4, 5]
if 1 not in num_list:
print("1 を含みません。")
実務でよく使うテクニックなので、覚えておきましょう。
さらに条件を加える
and
やor
を使うことで、より複雑な条件を加えることが可能です。
例えば、次のような形です。
age = 25
has_license = True
if age >= 18 and has_license:
print("You can drive.")
else:
print("You cannot drive.")
a and b
とした場合には、a
もb
もTrue
の場合にif
節内が実行されます。
今回の場合ではage
が25
なのでTrue
、has_license
もTrue
なので、if
節内が実行されます。
また、or
を使った例もご紹介します。
temperature = 30
is_raining = False
if temperature > 25 or is_raining:
print("Let's use the air conditioner.")
else:
print("We don't need air conditioning.")
a or b
とすると、a
とb
のいずれか、またはどちらもTrue
の場合にif
節内が実行されます。
上記の例では、「気温が25度を超えている」か「雨が降っている」のどちらか一方でもTrue
ならif
節内が実行されます。
今回は気温が25度以上なので、雨が降っていなくてもif
節内が実行されることになります。
三項演算子を使ってワンライナーで条件分岐する
三項演算子を使えばif
文を一行で表現できます。
三項演算子の基本: 値の切り替え
書き方は以下の通りです。
"True の場合の値" if 条件式 else "False の場合の値"
これではちょっと分かりづらいと思うので、実際のコード例で確認しましょう。
# 比較対象の数字を定義
a = 10
b = 20
# 三項演算子で大きい方を取得
max_value = a if a > b else b
print(max_value) # 20が出力される
上記の場合には単純に「大きい方の数字」を出力していますが、以下のように文字列を出力することもできます。
# 比較対象の数字を定義
a = 10
b = 20
# 三項演算子で大きい方を取得
which_value = "10が選択されました" if a > b else "20が選択されました"
print(which_value) # "20が選択されました" が出力される
三項演算子の基本: 式の切り替え
三項演算子の戻り値として「値」の代わりに「式そのもの」を指定できます。
日本語で表現すると、以下のようになります。
"True の場合の式" if 条件式 else "False の場合の式"
このようにすることで、条件式の結果次第で計算式を変えることができます。
以下の例では、大きい方の数字を二倍した値が取得されます。
# 比較対象の数字を定義
a = 10
b = 20
# 三項演算子で大きい方を取得
max_value_double = a * 2 if a > b else b * 2
print(max_value_double) # 40が出力される
if 文を使いこなして Python を自在に操ろう!
if
文は Python を学習する上で最重要概念です。
今回の基本的な事項をマスターして、Python をストレスなく書けるようにしていきましょう!
ご不明点がありましたら、下のコメント欄よりお気軽にどうぞ。
また、本ブログの Python 関連記事もぜひ覗いてみてください。
コメント