numpyビット演算子の優先順位は何ですか?&と| ?ナンシービット演算子の優先度?
私は
a & b | c
をすれば、それはどのような式を評価しますか? a & (b | c)
? (a & b) | c
?私も(〜)NOT仮定いかが
a | b & c
は最高の優先度を持っていますか?
numpyビット演算子の優先順位は何ですか?&と| ?ナンシービット演算子の優先度?
私は
a & b | c
をすれば、それはどのような式を評価しますか? a & (b | c)
? (a & b) | c
?私も(〜)NOT仮定いかが
a | b & c
は最高の優先度を持っていますか?
インターネット接続が切断されたときに使用できる方法は次のとおりです。あなたが持っているかもしれない多くの質問にも当てはまります。このテクニックの口述は「吸って見てください」。
>>> from itertools import product
>>> list(product(range(2), repeat=3))
[(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1)]
>>> all((a & b | c) == ((a & b) | c) for a, b, c in product(range(2), repeat=3))
True
>>> all((a & b | c) == (a & (b | c)) for a, b, c in product(range(2), repeat=3))
False
this section of the documentationとthis page(thanks @ F.J。)を参照してください。
優先順位は次のとおり
~
)&
)^
)|
)このこと:
a & b | c == (a & b) | c
a | b & c == a | (b & c)
[this](http://docs.python.org/reference/expressions.html#summary)によると、 '^'は '|'よりも優先度が高くなります。証明しやすい、 '1 | 2^3!=(1 | 2)^ 3'である。 –
良いキャッチです。私は編集をしました。 – Benjamin
+1は人々がよく見落とすアプローチを提示するためのものです。 – prelic
私はtry and seeアプローチを間違いなく好きです。最初の文が真であれば、2つの演算子が同じ優先順位を持つことができるので、 '(a | b&c)==((a | b)& c) '。これはfalseなので、 '&'は '|'よりも優先順位が高いことがわかりますが、同じ優先順位の '+'や '-'のような演算子には真です。 –