比較演算子
「if」文の条件式ではオブジェクトの持つ値が等しいかどうかや大きいか小さいかを調べて「True」又は「False」を返します。この条件式の中で使用されるのが比較演算子です。
Pythonで用意されている比較演算子は次の通りです。
演算子 | 記述例 | 意味 |
---|---|---|
== | a == b | bがaに等しい |
!= | a != b | bがaに等しくない |
> | a > b | bよりaが大きい |
>= | a >= b | bよりaが大きいか等しい |
< | a < b | bよりaが小さい |
<= | a <= b | bよりaが小さいか等しい |
比較演算子の優先順位については「演算子の優先順位」を参照して下さい。
左辺と右辺のオブジェクトが持つ数値や文字列を比較し等しいか等しく無いか、また大きいか小さいかなどを比較できます。(オブジェクトそのものが同一かどうかを比較するわけではありません)。
では1つ1つ確認していきます。
演算子の左辺と右辺が等しいかどうかを比較するには「==」演算子を使用します。
num = 20 if num == 20: print "num is 20" pref = "Tokyo" if pref == "Osaka": print "pref is Tokyo"
変数「num」は数値「20」と値が同じですので「num == 20」は「True」を返します。また変数「pref」は文字列「Oska」とは異なりますので「pref == "Osaka"」は「False」を返します。
数値と数値の比較では、数値が等しいかどうかを調べます。文字列の場合も同様です。「==」演算子は左辺と右辺のオブジェクトが同じオブジェクトであるかどうかを調べるのではありません。オブジェクトが持っている値が同じかどうかを調べます。
演算子の左辺と右辺が等しく無いかどうかを比較するには「!=」演算子を使用します。
num = 20 if num != 20: print "num is 20" pref = "Tokyo" if pref != "Tokyo": print "pref is Tokyo"
変数「num」は数値「20」と値が同じですので「num != 20」は「False」を返します。また変数「pref」は文字列「Oska」とは異なりますので「pref != "Osaka"」は「True」を返します。
なお等しく無いことを調べるには「!=」演算子の他に「<>」演算子も用意されています。ただこちらの演算子は非推奨となっていますので、通常は「!=」演算子を使用して下さい。
演算子の左辺と右辺の大きさを比較するには「>」「>=」「<」「<=」を使用します。
num = 15 if num < 20: print "num is under 20" pref = "Tokyo" if pref > "Osaka": print "pref is Tokyo"
大きさを比較する場合、数値の場合は数値の大きさを比較します。文字列の場合は比較する2つの文字列をアルファベット順に並べて比較します。「a」は「b」よりも小さく「A」は「a」よりも小さいです。
変数「num」は数値「20」よりも小さいですので「num < 20」は「True」を返します。また変数「pref」は文字列「Oska」とは比較して大きいですので「pref > "Osaka"」は「True」を返します。
「>=」や「<=」のように「=」が付く場合はそれぞれ「大きいか等しい」「小さいか等しい」場合に条件式が「True」を返します。
では実際に試してみます。
#coding: UTF-8 num = 20 if num == 20: print "num equal 20" pref = "Tokyo" if pref == "Tokyo": print "pref = Tokyo" pref = "Tokyo" if pref > "Osaka": print "pref is over Tokyo"
上記を「test4-1.py」として保存します。保存する時の文字コードはUTF-8です。そして次のように実行して下さい。
( Written by Tatsuo Ikura )