Pythonでの比較演算子>と<についてです。比較演算子とは演算子の左側と右側を比べるものになります。この比較演算子を用いた式ではTrueかFalseの値しか返されません。
他の比較演算子は以下で紹介しています。


比較演算子>の意味と使い方
演算子である>の左側と右側を比較して、左側の方が大きければTrueを、左側が大きくなければFalseを返します。
演算子の左側が右側より大きい場合
print(100 > 10)
'''
【出力結果】
True100は10より大きいので、Trueを返します。
演算子の左側が右側より大きくない場合
print(1 > 2)
'''
【出力結果】
True1は2より小さいので、Falseを返します。
演算子の左側と右側が同じ場合
print(3 > 3)
'''
【出力結果】
Falseなんで?となりそうですが、冒頭でも記載した通り、>の左側の方が右側より大きければTrue、>の左側の方が右側より大きくなければFalseを返します。上記の場合、3は3より大きくないのでFalseになります。
>を用いて文字列を比較する場合
少し変わりますが、文字列を比較する事もできます。
print("a" > "b")
'''
【出力結果】
False文字の大小なんて比較できるの?となりそうですが、実際には文字の大小を比較しているのではなく、各文字に割り振られているUnicodeコードポイントという数字の大小を比較しています。
Unicodeコードポイントについて(鋭意作成中です)
また各文字のUnicodeコードポイントはPython3ではord()関数を用いて確認することができます。
print(ord("a"))
print(ord("b"))
'''
【出力結果】
97
98a=97,b=98なので、97(a) >98(b)となるので、Falseが返ります。
1文字目が同じ場合2文字目で、2文字目が同じ場合3文字目で…と順番に比較されていきます。
print("abc" > "abd")
print(ord("c"))
print(ord("d"))
'''
【出力結果】
False
99
100演算子の左側と右側は2文字目まで同じなので、3文字目(左側はc、右側はd)で比較します。cのUnicodeコードポイントは99、dのUnicodeコードポイントは100なので、99(c)> 100(d)なのでFalseが返ります。
比較演算子<の意味と使い方
こちらは先程の>と大小が逆になり、<の左側の方が右側より小さければTrue、左側の方が右側より小さくなければFalseを返します。
演算子の左側が右側より小さい場合
以下の例では、5は6より小さいので、Trueを返します。
print(5 < 6)
'''
【出力結果】
True演算子の左側が右側より小さくない場合
以下の例では、6は5より小さくないので、Falseを返します。
print(6 < 5)
'''
【出力結果】
False演算子の左側と右側が同じ場合
5は5より小さくないので、Falseを返します。
print(5 < 5)
'''
【出力結果】
False<を用いて文字列を比較する場合
<の比較演算子でも文字列が扱えます。
print("a" < "b")
print("abc" < "abd")
print(ord("a"))
print(ord("b"))
print(ord("c"))
print(ord("d"))
'''
【出力結果】
True
True
97
98
99
100
a、b、c、dのUnicodeコードポイントがそれぞれ97、98、99、100なので97(a) <98(b)、99(c)<100(d)(abまでは一緒なのでcとdで比較する。)となり、”a”<”b”も、”abc”<”abd”もTrueになります。
比較演算子と変数を組み合わせた使い方
これまで、数値もしくは文字列の比較のみを紹介してきましたが、変数を比較する対象にすることもできます。
比較演算子>を用いた変数の比較(数値)
次のような例の場合、変数xと変数yの値がそれぞれ10と9なので、10(x)>9(y)はTrue、9(y)>10(x)はFalseが返ります。
x = 10
y = 9
print(x > y)
print(y > x)
'''
【出力結果】
True
False比較演算子>を用いた変数の比較(文字列)
次のような例の場合、変数xと変数yの文字列がhensuとhensuuでhensuの部分まで同じなので、変数xの6文字目の「何もない」部分と変数yの最後のuを比較する事になります。その為、x > yはFalse、y > xはTrueが返ります。
x = "hensu"
y = "hensuu"
print(x > y)
print(y > x)
'''
【出力結果】
False
True比較演算子<を用いた変数の比較(数値)
前述の比較演算子>と考え方は同じです。比較演算子>では、左側が右側より大きいでしたが、比較演算子<では左側が右側より小さいに変わるだけです。変数xと変数yの値がそれぞれ10と9なので、10(x)<9(y)はFalse、9(y)<10(x)はTrueが返ります。
x = 10
y = 9
print(x < y)
print(y < x)
'''
【出力結果】
False
True比較演算子<を用いた変数の比較(文字列)
変数xと変数yの文字列がhensuとhensuuでhensuの部分まで同じなので、変数xの6文字目の「何もない」部分と変数yの最後のuを比較する事になります。その為、x < yはTrue、y < xはFalseが返ります。
x = "hensu"
y = "hensuu"
print(x < y)
print(y < x)
'''
【出力結果】
True
Falseまとめ
>と<以外にも比較演算子はあり、種類、意味、例、評価結果は次のようになります。
演算子 意味 例 評価結果 > より大きい 100 > 10 True < より小さい 100 < 10 False >= 以上 2 >= 2 True <= 以下 1 <= 4 True == 等価(同じ値か) 6 == 9 False != 非等価(違う値か) 3 != 2 True (独学プログラマー P.34 日経BP社発行より)

コメント