【Python】よくわかる比較演算【入門第18回】

98, 2019-08-11

目次

比較演算とは

こんにちは、narupoです。

今回はPythonの比較演算をやりたいと思います。
比較演算とはいったいなんなのか?

比較演算とはそのまんまですが、比較する演算です。
たとえば、ABが等しいとか、等しくないとか。
AよりBが大きいとか、小さいとか。
そういう比較をします。

具体的には↓を見ていきます。

  • ==(等しい)

  • !=(等しくない)

  • (より大きい)

  • =(以上)

  • <(より小さい)

  • <=(以下)

  • in(含まれる)

  • not in(含まれない)

この比較演算は、あとで学ぶif文でよく使うので、この記事で覚えておきましょう。

==(等しい)

==(イコール)という演算子は左辺と右辺が等しいか演算します。
等しければTrue, 等しくなければFalseを返します。
数学では=がイコールですが、Pythonでは==なので注意してください。

たとえば↓のコード、11は等しいので結果はTrueになります。

1 == 1

printで出力してみましょう。

print(1 == 1)

結果は↓のようになります。

True

では↓の比較はどうでしょうか。

1 == 0

10は等しくないので結果はFalseになります。
==演算子はもちろん実数や文字列も比較することができます。

1.23 == 1.23

↑の比較の結果はTrueです。
また、文字列は↓のように比較します。

'cat' == 'dog'

文字列catと文字列dogは等しくないので結果はFalseになります。
また、↓のように演算子を3つ以上つなげることもできます。

1 == 2 == 3

↑のような比較の場合は、左から順に比較していって、結果がFalseになった時点で比較が終了します。
1 == 2の結果はFalseなので、この式の結果はFalseになります。
↓の場合はどうでしょうか。

1 == 1 == 2

1 == 1の結果はTrueですが、1 == 2の結果はFalseになります。
よって結果はFalseになります。

!=(等しくない)

!=(ノット・イコール)という演算子は左辺と右辺が等しくないか演算します。
左辺と右辺が等しくなければTrue, 等しければFalseを返します。

たとえば↓の比較。

1 != 2

12は等しくないので結果はTrueになります。
↓の比較はどうなるでしょうか。

1 != 1

11は等しいので、結果はFalseです。
!=演算子も実数や文字列を比較することが出来ます。

1.23 != 2.34

↑の比較はTrueです。1.232.34は等しくないからですね。

'cat' != 'dog'

↑の比較はTrueになります。
文字列catと文字列dogは等しくないからです。

!=演算子も3つ以上つなげることができます。

1 != 2 != 3

↑の比較の結果はTrueです。
12と等しくないですし、23と等しくないからですね。
!=の3つ以上の比較も、左から順に比較していって、Falseになった時点で比較が終わります。
たとえば↓のような比較。

1 != 1 != 2

1 != 1の結果がFalseなので、1 != 2の比較は実行されず全体の比較が終了します。
よって結果はFalseになります。

>(大なり)という演算子は左辺が右辺より大きいかどうか演算します。
左辺が右辺より大きければ結果はTrue, 左辺が右辺以下なら結果はFalseになります。

2 > 1

↑の比較、21より大きいので結果はTrueです。

1 > 2

↑の比較は、12以下なので結果はFalseになります。
もちろん実数も比較できます。

1.23 > 0.12

↑の比較の結果はTrueになります。
1.230.12より大きいからですね。

ちなみに文字列も>演算子で比較できます。

'a' > 'A'

↑の比較の結果はTrueになります。
文字列を>で比較する場合は、文字列を数値として見た場合の大小で比較します。
使いどころとしては、たとえば英字のASCIIコードを比較したい場合などが思い浮かびますが、その場合はordなどを使ったほうがわかりやすいでしょう。

>も3つ以上つなげることが出来ます。

3 > 2 > 1

↑の比較の結果はTrueです。
左から順に比較していって、Falseになった時点で全体の比較を終了します。

これ系の演算子のおもしろいところは、変数の値の範囲を数学的に書けるところです。
たとえば、

x = 5
10 > x > 1

のように変数の値の範囲を書けます。
↑の比較の結果はTrueになります。

ふつくしい

>=(大なりイコール)という演算子は、左辺が右辺以上かどうか演算します。
左辺が右辺以上なら結果はTrue, 左辺が右辺より下なら結果はFalseになります。

>との違いは、>が「より大きい」のに対して>=は「以上」というところです。

1 >= 1

↑の比較の結果はTrueになります。11以上だからですね。

0 >= 1

↑の比較の結果はFalseになります。
>=も実数や文字列を比較できます。
また、3つ以上つなげることもできます。

<(より小さい)

<(小なり)という演算子は、左辺が右辺より小さいかどうか演算します。
左辺が右辺より小さければ結果はTrue, 左辺が右辺以上なら結果はFalseになります。

1 < 2

↑の比較の結果はTrueになります。12より下だからです。

1 < 1

↑の比較の結果はFalseになります。11以上だからです。
<も実数や文字列を比較できます。
また、3つ以上つなげることもできます。

<=(以下)

<=(小なりイコール)という演算子は、左辺が右辺以下かどうか演算します。
左辺が右辺以下なら結果はTrue, 左辺が右辺より大きければ結果はFalseになります。

1 <= 1

↑の比較の結果はTrueです。11以下だからです。

2 <= 1

↑の比較の結果はFalseです。21より大きいからですね。
<=も実数や文字列を比較できます。
また、3つ以上つなげることもできます。

in(含まれる)

inという演算子は、左項が右項に含まれているかどうか演算します。
たとえば文字列aが文字列abcに含まれているか演算するには↓のようにします。

'a' in 'abc'

↑の比較の結果はTrueになります。
文字列aは文字列abcの中に含まれているからですね。

↓の演算はどうでしょうか。

'd' in 'abc'

文字列dは文字列abcの中に含まれていないので、↑の演算の結果はFalseになります。

not in(含まれない)

左項が右項に含まれていないかどうかを演算するにはnot inを使います。
たとえば文字列aが文字列defに含まれていないかどうか演算するには↓のようにします。

'a' not in 'def'

↑の比較の結果はTrueになります。
文字列aは文字列defの中に含まれていないからです。

↓の演算はどうでしょうか。

'd' not in 'def'

文字列dは文字列defの中に含まれているので、↑の演算の結果はFalseになります。

おわりに

比較演算子はよく使いますので、憶えるようにしましょう。
最初は==!=を覚えて、その次に>=<=, 最後に><を覚えるといいかもしれません。
>=<=を覚えておけば<>の代用が効くからですね。

比較される社会というものは生きづらい社会ですが、プログラミングではこれでもかというほど比較をしています。
ですので慣れるようにしましょう。

資本主義も限界きてるよね~

次回に続きます。

関連動画

スポンサーリンク

スポンサーリンク

スポンサーリンク

スポンサーリンク