演算による真偽の判定。 条件式やループで絶対必要になるのでメモ。
比較演算子
値を比較して真偽を判定する。表にすると以下のような感じ。
式 | 説明 |
---|---|
x == y | xとyは等しい |
x < y | xはyより小さい |
x > y | xはyより大きい |
x >= y | xはyと等しいか、より大きい(以上) |
x <= y | xはyと等しいか、より小さい(以下) |
x != y | xはyと等しくない |
x is y | xとyは同じオブジェクトである |
x is not y | xとyは別々のオブジェクトである |
x in y | xはyのメンバーである |
x not in y | xはyのメンバーではない |
大小の比較はだいたい分かるので詳細は割愛。
等価演算子と同一演算子
==
は「等価演算子」、is
は「同一演算子」と呼ぶ。似ているが少し違う。
>>> x = y = [1,2,3] >>> z = [1,2,3] >>> x == y True >>> x == z True >>> x is y True >>> x is z False
x = y = [1,2,3]
は連鎖代入。x
とy
は同一オブジェクト([1,2,3])を示すため、x is y
がTrue
となる。
一方、z
はx
と同じ値([1,2,3])を持つので、x == z
はTrue
だが、同一オブジェクトではないため、x is z
はFalse
となる。
メンバーシップテスト
in
でメンバーシップテストを行う。
>>> number = [1, 2, 3, 4, 5] >>> x = 3 >>> x in number True >>> x = 10 >>> x in number False
文字列でもできる。
>>> aa = "aiueo" >>> bb = ["a", "i", "u", "e", "o"] >>> cc = "u" >>> cc in aa True >>> cc in bb True >>> dd = "eo" >>> dd in aa True >>> dd in bb False
文字列自体に含まれるかを調べることもできるし、文字列を要素とするリストに含まれるかも調べることができる。