等しい・等しくない
2変数が等しいかどうかを調べる場合、==演算子を使用します。等しい場合はTrueが、そうでない場合はFalseが返されます。
x = 3
y = 3
z = 7
b1 = (x == y)
b2 = (x == z)
print(b1) # True
print(b2) # False
一方、等しくない場合は!=を使用します。先ほどとは逆に等しくない場合はTrueが、等しい場合はFalseが返されます。
x = 3
y = 3
z = 7
b1 = (x != y)
b2 = (x != z)
print(b1) # False
print(b2) # True
大なり小なり
数学と同様、大なり小なり記号を使用して2変数の大小関係を得ることができます。Pythonの特徴の1つに、比較演算子を同時に複数使用することができる、ということが挙げられます。便利な書き方なので、是非活用してみてください。サンプルで確認してみましょう。
x = 3
y = 5
z = 7
b1 = (x < y)
print(b1) # Trueが出力される
b2 = (x < y < z)
print(b2) # Trueが出力される
数学の不等号と同じなのですんなり飲み込めたのではないでしょうか。
含まれる・含まれない
リスト、タプル、setなど複数の値を持つコレクションの場合、in、not inである要素が含まれているかどうかを判定することができます。以下のコードでは3と4がリストl1に含まれているかどうかを調べています。
l = [1, 3, 5, 7]
b1 = (3 in l)
print(b1) # True
b2 = (4 in l)
print(b2) # False
is オブジェクトの同一性
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と評価されます。