関係演算(等価と比較演算)

制御文を使いこなせるようになるために、事前に関係演算について説明します。

等価

Pythonのオブジェクトが等価かどうかを評価する場合、==演算子を使用します。

等価と判断された場合、Trueが返されます。そうでない場合はFalseが返されます。

x = 3
y = 3
z = 7

b1 = (x == y)
b2 = (x == z)

print(b1) # True
print(b2) # False

オブジェクトの等価性

Pythonのオブジェクトはそれぞれユニークなid(識別子)を持っており、オブジェクトのIDと呼ばれています。

メモリ上のアドレスの一種だと捉えても差し支えありません。

オブジェクトが同一であるとは、変数が同じアドレスを指している場合のことを指します。

さてそのオブジェクトのIDですが、組み込み関数のid関数でを取得することができます。

2つのオブジェクトが同一のオブジェクトかどうか、つまりIDが等しいかどうかを判定する場合、isを利用します。

一方で、同じ値を持つかどうかの判定は、==演算子を使用します。

サンプルで確認してみましょう。

x = [1, 2]
y = x
z = [1, 2]

# IDを確認する
print(id(x))
print(id(y))
print(id(z))


# 同じ値かどうかを判定
b1 = (x == y)
b2 = (x == z)
print(b1) # True
print(b2) # True

# 同じオブジェクトかどうかを判定
b3 = (x is y)
b4 = (x is z)
print(b3) # True
print(b4) # False

yはxの値を代入したものなので、同じオブジェクトを指し示しています。zはxと同じ値ですが、新たに作成したオブジェクトですので、isで比較するとFalseと評価されます。

比較演算子

比較演算子は<(大なり)、>(小なり)を使用します。

Pythonの特徴の1つに、比較演算子を同時に複数使用することができる、ということが挙げられます。

サンプルで確認してみましょう。

x = 3
y = 5
z = 7

b1 = (x < y)
print(b1) # Trueが出力される

b2 = (x < y < z)
print(b2) # Trueが出力される

かなり便利な書き方なので、是非活用してみてください。