みなさん、こんにちは。エディターが次の質問に答えます。Python で垂直バーは何を表すのか、Python で垂直バーは何を表すのか、今日は見てみましょう。
ウィキペディアのページが間違っていたので修正しました。| と & はブール演算子ではなく、熱心な演算子であっても、短絡演算子ではないことを意味します。ご存知のとおり、Python および and or 演算子は次のように動作します: >>> def talk(x):
... print "評価中: ", bool(x)
...x を返す
...
>>> talk(1 == 1) または talk(2 == 1) # 2 == 1 は評価されません
評価: True
真実
>>> トーク(1 == 1) とトーク(2 == 1)
評価: True
評価: False
間違い
>>> talk(1 == 2) と talk(1 == 3) # 1 == 3 は評価されません
評価: False
間違い
私の知る限り、Python には積極的なブール演算子はなく、明示的にコーディングする必要があります。例: >>> defeager_or(a, b):
... a または b を返します
...
>>>eager_or(トーク(1 == 1), トーク(2 == 1))
評価: True
評価: False
真実
現在、a と b は、短絡しているか、短絡しているにもかかわらず、関数が呼び出されたときに自動的に評価されます。
| と & の使用法に関しては、数値と一緒に使用すると二項演算子になります: >>> bin(0b11110000 & 0b10101010)
「0b10100000」
>>> ビン(0b11110000 | 0b10101010)
「0b11111010」
おそらくこの方法を使用して、wxWidgets のようなフラグを使用するライブラリに Python をバインドします: >>> Frame = wx.Frame(title="My Frame", style=wx.MAXIMIZE | wx.STAY_ON_TOP)
>>> bin(wx.MAXIMIZE)
「0b10000000000000」
>>> ビン(wx.STAY_ON_TOP)
「0b1000000000000000」
>>> bin(wx.MAXIMIZE | wx.STAY_ON_TOP)
「0b1010000000000000」
セットで使用すると、それぞれ交差演算と結合演算が実行されます: >>> set("abcd") & set("cdef")
set(['c', 'd'])
>>> set("abcd") | set("cdef")
set(['a', 'c', 'b', 'e', 'd', 'f'])