さつまろぐ

CAEとかプログラムとか、出来たことの記録など、誰かのお役に立てれば幸い。

Pythonで遊ぶ 複雑な条件

演算による真偽の判定。 条件式やループで絶対必要になるのでメモ。

比較演算子

値を比較して真偽を判定する。表にすると以下のような感じ。

説明
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]は連鎖代入。xyは同一オブジェクト([1,2,3])を示すため、x is yTrueとなる。 一方、zxと同じ値([1,2,3])を持つので、x == zTrueだが、同一オブジェクトではないため、x is zFalseとなる。

メンバーシップテスト

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

文字列自体に含まれるかを調べることもできるし、文字列を要素とするリストに含まれるかも調べることができる。

広告