“|”有什么区别和“+”?

What is the difference between "|" and "+"?

我最近一直在做 codewars 挑战,偶然发现了这个:使用管道符号添加两个项目。我在我的 python 环境中尝试了这个,很好奇它的作用以及它与 + 符号有何不同。

print(5 | 2)

这当然输出到 7。在我正在查看的 codewars 问题中,其中一个解决方案使用它来将两个集合加在一起。这是什么意思?

| 是按位或。在您的示例中,碰巧是:

0101
0010 |
---
0111

二进制为7。

如果你要计算,例如5 | 9。你会得到 13,而不是 14,因为 | 不是 +

旁注:如果您将 | 应用于按位与 returns 0 的两个数字,则加法和按位或 returns 的结果相同。

在2和5的情况下,2 & 5 = 0,所以+|returns结果相同