print(2%2|1)
这将返回1,但我无法理解|的功能。操作员。它会比较两个方程吗?这是唯一的功能吗?
答案 0 :(得分:5)
根据Python的运算符优先级规则,该表达式等效于:
(2 % 2) | 1
那等于:
0 | 1
该值为1
。需要明确的是,|
是按位或运算符。
答案 1 :(得分:2)
为了详细说明ÓscarLópez的回答:在python中使用按位运算符时,将比较参数的二进制表示形式。
一个不同的示例可能有助于理解逻辑:
17|3
参数转换为二进制格式:
17: 10001
3: 11
对于按位或(|),将对两个二进制项进行比较,如果两个项中的任何一个在特定位置具有1,则返回1,否则返回0:
17: 10001
3: 11
res: 10011
在这种情况下,比较产生10011,然后转换回十进制为19。