Numpy 位运算符优先级?
numpy中的位运算符&和|的优先级是怎样的?
如果我写了
a & b | c
这个表达式会怎么计算呢?是 a & (b | c)
还是 (a & b) | c
呢?
那如果是
a | b & c
我还想知道,NOT (~) 的优先级是不是最高的?
2 个回答
9
这里有一个技巧,可以在你网络连接断开时使用。这个技巧适用于你可能遇到的很多问题。简单来说,这个技巧可以用一句话来形容,就是“试试看”。
>>> 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