5-3. Pythonの比較演算子


1. 比較演算子とは?

複数の値の等価、大小、同一性を調べる時に使う演算子のことを比較演算子と言います。
if文の条件文によく使われます。

if文の使い方については以下のページを参考にして下さい。
▶︎ Python if文による条件分岐の解説

if x > y: # xがyより大きい
    print('xがyより大きい時の処理を書く。')

2. 比較演算子の一覧

比較演算子には以下の種類があります。

 演算子説明
x == yxyは等しい
x != yxyは等しくない
x < yxyより小さい (yを含まない)
x > yxyより大きい (yを含まない)
x <= yxy以下
x >= yxy以上
x is yxyは同じオブジェクト
x is not yxyは同じオブジェクトではない
x in yxyに含まれる
x not in yxyに含まれない


3. 比較演算子の使用例

等価、不等価の比較演算子の使用例

x = 10
y = 5

print(x == y)
>> False

print(x != y)
>> True


if文で数値の比較演算子

x = 10
y = 5

if x > y:
    print('xはyより大きいです。')
else:
    print('xはy以下です。')

>> xはyより大きいです。


文字列やリストなど、他の型の変数でも比較演算子が使えます。

x = 'a'
y = 'a'

print(x == y)
>> True

print(x != y)
>> False

4. isと==の違い

Pythonでは==値が等しいことを評価し、isオブジェクトが同一であることを評価しています。

例えば、要素の値が同じリストを2つ作っても、そのリスト2つのオブジェクトは同一ではありません。
そのため==で判別した結果がTrueになっても、isで判別した結果がFalseになります。

x = ['a', 'b', 'c']
y = ['a', 'b', 'c']

print(x == y)
>> True

print(x is y)
>> False


リスト以外のコレクション、集合・辞書・タプルでも同様です。
また、オブジェクトはidが設定されており、id()でオブジェクトのそのidを調べることができます。

x = ['a', 'b', 'c']
y = ['a', 'b', 'c']

print(id(x))
>> 139847073099592

print(id(y))
>> 139847072645512


オブジェクトidについては、この後の章で説明します。


5. Pythonの非数値 nan の比較

Pythonの非数値(not-a-number)、float('NaN')decimal.Decimal('NaN')は自分と等価ではありません。
そのため、==ではFalseになり、isではTrueになります。
この2つは非常に特殊です。

x = float('nan')

print(x == x)
>> False

print(x is x)
>> True


float('Nan')はmathモジュールのmath.isnan()で、nanかどうかを判定できます。
▶︎ Python 非数値 nan と無限大 infについて

Pythonの無限大、float('inf')decimal.Decimal('Infinity')None自分と等価です。

import decimal 
x = decimal.Decimal('Infinity')

print(x == x)
>> True

print(x is x)
>> True 


6. Python 公式 ドキュメント


このエントリーをはてなブックマークに追加