打印语句通过|分隔两个方程式。我无法理解它的真正功能

时间:2019-02-08 14:06:27

标签: python

print(2%2|1)

这将返回1,但我无法理解|的功能。操作员。它会比较两个方程吗?这是唯一的功能吗?

2 个答案:

答案 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。