【Python】if文における分岐処理の書き方

本記事では、Pythonにおけるif文の書き方を解説します。

もくじ

if文の基本

Pythonでは、以下のようにif文を書きます。

if 条件文1:
処理1
elif 条件文2:
処理2
else:
処理
3

条件文1,2には、後述の条件式を指定します。


また、上の例文では、elif 条件文2:のみで記載しましたが、
elif 条件文:は、if 条件文: と else: の間に無制限に書くことができます。

具体的には以下のように書きます。

if a == 1:
    print(“a は 1”)
elif a == 2:
    print(“a は 2”)
else:
    print(“a は 1,2以外)

条件文

比較演算子

Pythonで使用可能な条件文として、比較演算子を使うものがあります。
比較演算子の計算結果は、bool値でTrue、Falseのいずれかとなります。

比較演算式意味
a < b小なり。aがbより小さい場合にTrue、それ以外はFalse
a > b大なり。aがbより大きい場合にTrue、それ以外はFalse
a == bイコール。aがbと同じ値の場合にTrue、それ以外はFalse
a >= b大なりイコール。aがb以上の場合にTrue、それ以外はFalse
a <= b小なりイコール。aがb以下
a != bノットイコール。aがbと異なる値
a is bオブジェクトに対するイコール。
a が b と同じオブジェクトである
a is not bオブジェクトに対するノットイコール。
a が b と異なるオブジェクトである
a in b複数の要素を持つbにaが含まれる。
bはリストやタプルを使用する。
a not in b複数の要素を持つbにaが含まれない。
bはリストやタプルを使用する。


比較演算子を使った条件文の計算結果がTrueとなった場合対象の分岐処理を実行し、
Falseとなった場合は条件が成り立ちません。

例えば、以下のソースコードの例を見てください。
a が 1 のとき、
a == 1はTrueとなり、if文内の処理 “a は 1 である” を表示する処理を行いますが、
a > 2はFalseとなり、if文内の処理 “a は 2 より大きい” を表示する処理を行いません。

# a が 1のとき
a = 1

if a == 1:
    print(“a は 1 である”)

if a > 2:
    print(“a は 2 より大きい”)

論理演算子

Pythonで使用可能な条件文として、論理演算子を使うものがあります。
こちらも比較演算式と同様計算結果がbool型でTrue、Falseのいずれかになります。

論理演算式意味
not aa がTrueならFalse、FalseならTrue
a and ba かつ b がTrueならTrue、それ以外はFalse
a or ba または b がTrueならTrue、それ以外はFalse

計算の結果、Trueになった場合、対象の分岐処理を行います。

演算子同士を混在させることもできる

ここに来るまでに比較演算子と論理演算子の2つの演算子について述べてきましたが、
これらの演算子以外にも以下のような演算子があり、条件文に含めることが可能です。

優先度演算式意味
1a ** bべき乗
2-aマイナスの単項演算子
2+aプラスの単項演算子
2~aビット反転の単項演算子
3a * bかけ算
3a @ b行列のかけ算
3a // bわり算 (結果をint型)
3a / bわり算 (結果はfloat型)
3a % bわり算の余り
4a + bたし算
4a – bひき算
5a << b左シフト演算
5a >> b右シフト演算
6a & bビット論理積演算
7a ^ bビット論理排他演算
8a | bビット論理和演算
9上述の通り
(比較演算子)
比較演算子
10上述の通り
(論理演算子)
論理演算子

例えば、以下のように演算子を混在させた条件文を書くこともできます。

a = b = c = d = e = f = g = 1

if a + b - c * d / e == f ** g:
    print(“a + b - c * d / e は f ** g と等しい”)

if a == b and a == c or not a == d:
    print(“a == b and a == c or not a == d と等しい”)

計算される順番は、上の表に書いた優先度の通りです。
優先度の数字が小さいほど先に計算が行われます。

コメント