演算による真偽の判定。 条件式やループで絶対必要になるのでメモ。
比較演算子
値を比較して真偽を判定する。表にすると以下のような感じ。
| 式 | 説明 |
|---|---|
| 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
文字列自体に含まれるかを調べることもできるし、文字列を要素とするリストに含まれるかも調べることができる。