Python入門|比較演算子で条件の真偽をチェックする【bool型】のイメージ画像

Python入門|比較演算子で条件の真偽をチェックする【bool型】

  • 公開日:2018/06/03
  • 更新日:2018/10/19
  • 投稿者:n bit

今回はPythonの比較演算子について学習していきます。比較演算子を利用することで条件の適合、不適合を判断することができます。演算子を使った条件の真偽値は主に条件分岐に利用しますのでここでしっかり身につけておきましょう。

  • Python

この記事は約 分で読めます。(文字)

比較演算子で条件の真偽をチェックする

比較演算子とはその名の通り2つの値を比較してその結果を返すため演算子です。比較結果はbool型で返されます。そのため結果は真偽値、『真:True』または『偽:false』になります。

比較演算子の一覧

比較記号は数学の中でも登場しますが基本的な使い方は同じです。いちど比較記号について学習しておきましょう。比較演算に利用できる演算記号は下記の表の通りです。

演算子演算例演算
==a == baとbの値が等し時「True」
!=a != baとbの値が等しくない時「True」
<a < baの値がbより小さい時「True」
>a > baの値がbより大きい時「True」
<=a <= baの値がb以下の時「True」
>=a >= baの値がb以上の時「True」
  • ※ 上記の条件に該当しない場合は全て「False」

それぞれの記号の読み方は、

  • \(\lt\):小なり(しょうなり)
  • \(\gt\):大なり(だいなり)
  • \(\leqq\):小なりイコール(しょうなりいこーる)
  • \(\geqq\):大なりイコール(だいなりいこーる)

でしたね。なんとなく思い出してきましたでしょうか。\(\leqq\)と\(\geqq\)に関してはソースコード上このように記述することができませんので、\(\lt\)、\(\gt\)と\(=\)を横に並べて<=、>=と記述します。

それでは1つずつ確認していきます。

\(==\):イコールイコール

「\(==\)」イコール2つで\(a\)と\(b\)の値が等しい(一致)かどうかを判定します。等しければ「True」、等しくなければ「False」が返ります。

  • \(a\)と\(b\)の値が等し時「True」、それ以外の時「False」

\(=\)を1つにしてしまうとすでに学習した通り代入になってしまうので注意してください。

では実際にPythonで比較演算子を使って出力してみましょう。

a = 10

b = 15
x = a == b
print(type(x))
print(x)

出力結果

<class 'bool'>

False

\(a\)と\(b\)の値は等しくありませんので結果は「False」になります。出力結果が格納されている変数\(x\)のデータ型はbool型になっていることが確認できます。

\(!=\):エクスクラメーションマークイコール

「\(!=\)」エクスクラメーションマークイコールで\(a\)と\(b\)の値が等しく無い(不一致)かどうかを判定します。等しく無ければ「True」、等しければ「False」が返ります。

  • \(a\)と\(b\)の値が等しくない時「True」、それ以外の時「False」

比較演算子を使って出力してみます。

a = 10

b = 15
x = a != b
print(type(x))
print(x)

出力結果

<class 'bool'>

True

\(a\)と\(b\)の値は等しくありませんので結果は「True」が返されていることが確認できます。

\(\lt\):小なり(しょうなり)

\(\lt\)小なりで\(a\)の値が\(b\)より小さいかどうかを判定します。小さければ「True」、小さくなければ「False」が返ります。

  • \(a\)の値が\(b\)より小さい時「True」、それ以外の時「False」

比較演算子を使って出力してみます。

a = 10

b = 15
x = a < b
print(type(x))
print(x)

出力結果

<class 'bool'>

True

\(a\)の値は\(b\)より小さいので結果は「True」が返されていることが確認できます。

\(\gt\):大なり(だいなり)

\(\gt\)大なりで\(a\)の値が\(b\)より大きいかどうかを判定します。大きければ「True」、大きくなければ「False」が返ります。

  • \(a\)の値が\(b\)より大きい時「True」、それ以外の時「False」

比較演算子を使って出力してみます。

a = 10

b = 15
x = a > b
print(type(x))
print(x)

出力結果

<class 'bool'>

False

\(a\)の値は\(b\)より大きくないので結果は「False」が返されていることが確認できます。

\(\leqq\):小なりイコール(しょうなりいこーる)

\(\leqq\):小なりイコールで\(a\)の値が\(b\)以下かどうかを判定します。以下であれば「True」、以下でなければ「False」が返ります。

  • \(a\)の値が\(b\)以下の時「True」、それ以外の時「False」

\(\lt\):小なりは、「〇〇より小さい」でしたが、\(\leqq\):小なりイコールは「〇〇以下」になりますので\(a\)の数値と\(b\)の数値が等しい時でも「True」となりますよね。

比較演算子を使って出力してみます。

a = 10

b = 15
x = a <= b
print(type(x))
print(x)

出力結果

<class 'bool'>

True

\(a\)の値は\(b\)以下なので結果は「True」が返されていることが確認できます。

\(\geqq\):大なりイコール(だいなりいこーる)

\(\geqq\):大なりイコールで\(a\)の値が\(b\)以上かどうかを判定します。以上であれば「True」、以上でなければ「False」が返ります。

  • \(a\)の値が\(b\)以上の時「True」、それ以外の時「False」

こちらも、\(\gt\):大なりは、「〇〇より大きい」でしたが、\(\geqq\):大なりイコールは「〇〇以上」になりますので\(a\)の数値と\(b\)の数値が等しい時でも「True」となります。

比較演算子を使って出力してみます。

a = 10

b = 15
x = a >= b
print(type(x))
print(x)

出力結果

<class 'bool'>

False

\(a\)の値は\(b\)以上ではないので結果は「False」が返されていることが確認できます。

\(\lt\):小なり、\(\gt\):大なりと、\(\leqq\):小なりイコール、\(\geqq\):大なりイコールの使い分け方は比較対象となる\(a\)と\(b\)の値が等しい時も含むかどうかになります。等しい時を含まない場合は「\(\lt\):小なり、\(\gt\):大なり」、等しい時を含みたい場合は「\(\leqq\):小なりイコール、\(\geqq\):大なりイコール」になるということです。

比較演算子を組み合わせて利用する

個人的に次のような利用方法はあまり使いませんが、今まで学習した比較演算子を混在させて同時に利用することも可能です。

a = 10

b = 15
c = 15
x = a < b <= c
print(type(x))
print(x)

出力結果

<class 'bool'>

True

比較演算子には優先順位がありませんので基本的に前から順番に処理されて行きます。順番に処理していく中で1つでも不適合があれば「False」が返ってきます。

同じようなことを行いたい場合、通常は次のページで解説しています論理演算子を使う方が多いと思います。

比較演算子を使った文字列の比較

先ほどまでは比較演算子を使って数値の比較を行ってきました。実は、比較演算子を使った比較は数値だけではなく文字列でも比較することができます。

数値の比較は簡単にイメージできますが文字列の比較は一体何を元にして比較するのかピンときにくいですよね。文字列の比較には文字コードを利用しています。

文字コードとは、もともとコンピューターは数字のデータしか扱うことができないため各文字に固有の番号(数字)を割り当てたものを文字コードと呼びます。各文字に対応した番号とだけ理解しておけばここでは大丈夫です。

Note

文字コードとは

コンピュータなどの電子媒体において、文章を画像などの図形データとして扱わずに、テキストの形式で扱う場合に、その各文字(単一の文字でない場合もある)に対して持っているコードのことである。

出典:文字コード - Wikipedia

実際にいくつか比較演算子を使って出力してみましょう。まずは、等しいかどうかの比較です。

a = 'A'

b = 'Z'
x = a == b
print(x)

出力結果

False

文字「A」と「Z」は当然違う文字ですので「False」が返されています。

もう一つ小さいかどうかの比較を行ってみます。

a = 'A'

b = 'Z'
x = a < b
print(x)

出力結果

True

文字「A」の文字コードは「Z」の文字コードよりも小さな値となりますので「True」が返されてきます。

文字列でも同じように問題なく扱うことができます。

a = 'ABC'

b = 'XYZ'
x = a != b
print(x)

出力結果

True

このように文字でも比較演算子を使って比較を行うことが可能です。

今日のdot

比較演算子を利用することで2つ以上の値を比較し結果をbool型で取得することができます。結果は真偽値、『真:True』または『偽:false』になります。

比較演算子の一覧

演算子演算例演算
==a == baとbの値が等し時「True」
!=a != baとbの値が等しくない時「True」
<a < baの値がbより小さい時「True」
>a > baの値がbより大きい時「True」
<=a <= baの値がb以下の時「True」
>=a >= baの値がb以上の時「True」
  • ※ 上記の条件に該当しない場合は全て「False」