【Python】よくわかる比較演算【入門第18回】
目次
比較演算とは
こんにちは、narupoです。
今回はPythonの比較演算をやりたいと思います。
比較演算とはいったいなんなのか?
比較演算とはそのまんまですが、比較する演算です。
たとえば、A
とB
が等しいとか、等しくないとか。
A
よりB
が大きいとか、小さいとか。
そういう比較をします。
具体的には↓を見ていきます。
==(等しい)
!=(等しくない)
(より大きい)
=(以上)
<(より小さい)
<=(以下)
in(含まれる)
not in(含まれない)
この比較演算は、あとで学ぶif
文でよく使うので、この記事で覚えておきましょう。
==(等しい)
==
(イコール)という演算子は左辺と右辺が等しいか演算します。
等しければTrue
, 等しくなければFalse
を返します。
数学では=
がイコールですが、Pythonでは==
なので注意してください。
たとえば↓のコード、1
と1
は等しいので結果はTrue
になります。
:::python
1 == 1
print
で出力してみましょう。
:::python
print(1 == 1)
結果は↓のようになります。
True
では↓の比較はどうでしょうか。
:::python
1 == 0
1
と0
は等しくないので結果はFalse
になります。
==
演算子はもちろん実数や文字列も比較することができます。
:::python
1.23 == 1.23
↑の比較の結果はTrue
です。
また、文字列は↓のように比較します。
:::python
'cat' == 'dog'
文字列cat
と文字列dog
は等しくないので結果はFalse
になります。
また、↓のように演算子を3つ以上つなげることもできます。
:::python
1 == 2 == 3
↑のような比較の場合は、左から順に比較していって、結果がFalse
になった時点で比較が終了します。
1 == 2
の結果はFalse
なので、この式の結果はFalse
になります。
↓の場合はどうでしょうか。
:::python
1 == 1 == 2
1 == 1
の結果はTrue
ですが、1 == 2
の結果はFalse
になります。
よって結果はFalse
になります。
!=(等しくない)
!=
(ノット・イコール)という演算子は左辺と右辺が等しくないか演算します。
左辺と右辺が等しくなければTrue
, 等しければFalse
を返します。
たとえば↓の比較。
:::python
1 != 2
1
と2
は等しくないので結果はTrue
になります。
↓の比較はどうなるでしょうか。
:::python
1 != 1
1
と1
は等しいので、結果はFalse
です。
!=
演算子も実数や文字列を比較することが出来ます。
:::python
1.23 != 2.34
↑の比較はTrue
です。1.23
と2.34
は等しくないからですね。
:::python
'cat' != 'dog'
↑の比較はTrue
になります。
文字列cat
と文字列dog
は等しくないからです。
!=
演算子も3つ以上つなげることができます。
:::python
1 != 2 != 3
↑の比較の結果はTrue
です。
1
は2
と等しくないですし、2
は3
と等しくないからですね。
!=
の3つ以上の比較も、左から順に比較していって、False
になった時点で比較が終わります。
たとえば↓のような比較。
:::python
1 != 1 != 2
1 != 1
の結果がFalse
なので、1 != 2
の比較は実行されず全体の比較が終了します。
よって結果はFalse
になります。
>
(大なり)という演算子は左辺が右辺より大きいかどうか演算します。
左辺が右辺より大きければ結果はTrue
, 左辺が右辺以下なら結果はFalse
になります。
:::python
2 > 1
↑の比較、2
は1
より大きいので結果はTrue
です。
:::python
1 > 2
↑の比較は、1
は2
以下なので結果はFalse
になります。
もちろん実数も比較できます。
:::python
1.23 > 0.12
↑の比較の結果はTrue
になります。
1.23
は0.12
より大きいからですね。
ちなみに文字列も>
演算子で比較できます。
:::python
'a' > 'A'
↑の比較の結果はTrue
になります。
文字列を>
で比較する場合は、文字列を数値として見た場合の大小で比較します。
使いどころとしては、たとえば英字のASCII
コードを比較したい場合などが思い浮かびますが、その場合はord
などを使ったほうがわかりやすいでしょう。
>
も3つ以上つなげることが出来ます。
:::python
3 > 2 > 1
↑の比較の結果はTrue
です。
左から順に比較していって、False
になった時点で全体の比較を終了します。
これ系の演算子のおもしろいところは、変数の値の範囲を数学的に書けるところです。
たとえば、
:::python
x = 5
10 > x > 1
のように変数の値の範囲を書けます。
↑の比較の結果はTrue
になります。
ふつくしい
>=
(大なりイコール)という演算子は、左辺が右辺以上かどうか演算します。
左辺が右辺以上なら結果はTrue
, 左辺が右辺より下なら結果はFalse
になります。
>
との違いは、>
が「より大きい」のに対して>=
は「以上」というところです。
:::python
1 >= 1
↑の比較の結果はTrue
になります。1
は1
以上だからですね。
:::python
0 >= 1
↑の比較の結果はFalse
になります。
>=
も実数や文字列を比較できます。
また、3つ以上つなげることもできます。
<a name="<(より小さい)"><(より小さい)
<
(小なり)という演算子は、左辺が右辺より小さいかどうか演算します。
左辺が右辺より小さければ結果はTrue
, 左辺が右辺以上なら結果はFalse
になります。
:::python
1 < 2
↑の比較の結果はTrue
になります。1
は2
より下だからです。
:::python
1 < 1
↑の比較の結果はFalse
になります。1
は1
以上だからです。
<
も実数や文字列を比較できます。
また、3つ以上つなげることもできます。
<a name="<=(以下)"><=(以下)
<=
(小なりイコール)という演算子は、左辺が右辺以下かどうか演算します。
左辺が右辺以下なら結果はTrue
, 左辺が右辺より大きければ結果はFalse
になります。
:::python
1 <= 1
↑の比較の結果はTrue
です。1
は1
以下だからです。
:::python
2 <= 1
↑の比較の結果はFalse
です。2
は1
より大きいからですね。
<=
も実数や文字列を比較できます。
また、3つ以上つなげることもできます。
in(含まれる)
in
という演算子は、左項が右項に含まれているかどうか演算します。
たとえば文字列a
が文字列abc
に含まれているか演算するには↓のようにします。
:::python
'a' in 'abc'
↑の比較の結果はTrue
になります。
文字列a
は文字列abc
の中に含まれているからですね。
↓の演算はどうでしょうか。
:::python
'd' in 'abc'
文字列d
は文字列abc
の中に含まれていないので、↑の演算の結果はFalse
になります。
not in(含まれない)
左項が右項に含まれていないかどうかを演算するにはnot in
を使います。
たとえば文字列a
が文字列def
に含まれていないかどうか演算するには↓のようにします。
:::python
'a' not in 'def'
↑の比較の結果はTrue
になります。
文字列a
は文字列def
の中に含まれていないからです。
↓の演算はどうでしょうか。
:::python
'd' not in 'def'
文字列d
は文字列def
の中に含まれているので、↑の演算の結果はFalse
になります。
おわりに
比較演算子はよく使いますので、憶えるようにしましょう。
最初は==
と!=
を覚えて、その次に>=
と<=
, 最後に>
と<
を覚えるといいかもしれません。
>=
と<=
を覚えておけば<
と>
の代用が効くからですね。
比較される社会というものは生きづらい社会ですが、プログラミングではこれでもかというほど比較をしています。
ですので慣れるようにしましょう。
資本主義も限界きてるよね~
次回に続きます。