• 比較演算子・論理演算子・is演算子

    比較演算子・論理演算子・is演算子について学んでいきましょう。

    比較演算子

    まずは比較演算子です。比較演算子は、条件に合致するとTrueを、合致しないとFalseを返します。

    比較演算子の種類について以下の表にまとめました。

    比較演算子 意味
     > 大きい
     < 小さい
     == 同一
     != 異なる
     >= 以上
     <= 以下

    それぞれの演算子を順番に見ていきましょう。

    > (大きい)

    >は、大きい場合にTrueを返す演算子です。

    コード
    

    print( 10 > 5 )

    print( 5 > 10 )

    アウトプット
    

    True

    False

    < (小さい)

    <は、小さい場合にTrueを返す演算子です。

    コード
    

    print( 10 < 5 )

    print( 5 < 10 )

    アウトプット
    

    False

    True

    == (同じ)

    ==は、同じ場合にTrueを返す演算子です。

    コード
    

    a = 1

    b = 1

    print (a == b)

    アウトプット
    

    True

    文字列でお伝えしましたが、Pythonでは大文字と小文字が区別されます。

    実際にコードで確認してみましょう。

    コード
    

    a = 'car'

    b = 'CAR'

    print (a == b)

    アウトプット
    

    False

    != (異なる)

    !=は、異なる場合にTrueを返す演算子です。

    コード
    

    a = 1

    b = 2

    print (a != b)

    アウトプット
    

    True

    >= (以上)

    >=は同じかそれ以上の場合において費用が発生します。

    コード
    

    print( 10 >= 10 )

    アウトプット
    

    True

    <= (以下)

    <=は同じかそれ以下の場合において費用が発生します。

    コード
    

    print( 10 <= 10 )

    アウトプット
    

    True

    論理演算子

    次は、論理演算子をみていきましょう。

    論理演算子 意味
     and AかつB
     or AまたはB
     not True⇔False

    実際のコードをみていきましょう。

    and

    まずはandです。これは2つの比較対象が両方ともTrueの場合にTrueを返し、それ以外の場合はFalseを返します。

    コード
    

    a = (10 > 5) and (10 > 5)

    print(a)

    アウトプット
    

    True

    10>5がTrueとなりますので、上記のaはTrue and Trueとなり、結果もTrueとなります。

    コード
    

    a = (10 > 5) and (10 < 5)

    print(a)

    アウトプット
    

    False

    10>5はTrueですが、10<5はFalseになりますので、上記のaはTrue and Falseとなり、結果はFalseになります。

    or

    次はorです。これは2つの比較対象のどちらかがTrueの場合にTrueを返し、どちらもFalseの場合のみFalseを返します。

    コード
    

    a = (10 > 5) and (10 < 5)

    print(a)

    アウトプット
    

    False

    アウトプット
    

    False

    10>5がTrueですので、10<5の結果に関係なく結果はFalseになります。

    not

    notはTrueをFalseにし、FalseをTrueにします。

    notがコードに入ると少し読みづらくなることが多いですので、かっこを使うことで読みやすいコードにすることを意識すると良いでしょう。

    なお、演算子の優先順位については、演算の優先順位という記事で詳しく解説しています。

    コード
    

    a = (not (10 > 5)) and (not (10 < 5))

    print(a)

    アウトプット
    

    False

    左辺は(not (10 > 5))です。まずは10>5がTrueになり、それがnotでFalseになります。

    and演算子が使われていますので、結果として右辺が何であっても結果はFalseになります。

    is演算子

    最後はis演算子です。

    is演算子は、比較する2つが同じかどうかを判断する時に使われます。

    == と isの違い

    論理演算子のところで、==という演算子があることをお伝えしました。これも比較する2つが同じかどうかを判断する時に使われるのですが、何が違うのでしょうか。

    厳密な理解ではないのですが、is演算子は、メモリの同じアドレスにデータが入っているかを判断する時に使われ、==はデータそのものが同じかどうかを判断する時に使われます。

    メモリについては、メモリとアドレスという記事で詳しく解説していますので、ぜひ参考にしてみて下さい。

    同じアドレスに格納されているかどうかを確認するには、id関数を使います。

    ※id関数で返されるのはオブジェクトの”識別値”で、これはメモリ上のアドレスとは異なることを頭に入れておきましょう。

    実際のコードで確認していきます。

    コード
    

    a = 1

    b = 1

    print(id(a))

    print(id(b))

    print (a is b)

    アウトプット
    

    12348766

    12348766

    True

    変数aとbに1を代入し、id関数を使って識別値を確認しています。

    結果を見るとaとbの識別地は同じということが分かりました。

    ですので、a is b はTrueを返します。

    比較演算子・論理演算子・is演算子のまとめ

    (1) 条件に合致すればTrueを、合致しなければFalseを返す

    (2) コードが長くなった場合、かっこを使って分かりやすいコードを書くことが大切

    比較演算子・論理演算子・is演算子を学んだ後は

    これまで学んだ演算子の優先順位を確認するために、演算の優先順位を学びましょう。