【问题标题】:what does the ^= operator mean in Python? [duplicate]^= 运算符在 Python 中是什么意思? [复制]
【发布时间】:2020-03-22 08:39:52
【问题描述】:

^= 运算符在 Python 中是什么意思?

我在网上查了一下,上面写着“对操作数执行按位异或并为左操作数赋值”。

我玩过,但我仍然很困惑。谁能举一些例子来启发?

【问题讨论】:

标签: python python-3.x operators


【解决方案1】:

当只有奇数个条件为真时,XOR 将返回真。

假设以下情况:

Condition A: False; Condition B: False =>  A XOR B = False
Condition A: False; Condition B: True => A XOR B = True
Condition A: True; Condition B: False => A XOR B = True
Condition A: True; Condition B: True => A XOR B = False

假设我们有以下代码:

a = True
b = True
b ^= a #b XOR a
print(b) #Result = False

c = True
d = False
d ^= c #d XOR c
print(d) #Result = True

回答 khelwood 对此答案的评论;

您必须首先了解二进制(base-2)系统。因此,让我们有示例编号 6 和编号 3。这些数字分别转换为 base-2 中的 0110 和 0011。当我们对数字执行 XOR 时,我们将对每个单独的位执行操作。

让位按b3、b2、b1、b0的顺序排列。 在 b3 位置,0 XOR 0 会给你 0 在 b2 地方,1 XOR 0 会给你 1 在 b1 地方,1 XOR 1 会给你 0 在 b0 位置,0 XOR 1 会给你 1。

因此,结果是 base-2 中的 0101,即 base-10 中的 5

a = 6
b = 3
b ^= a
print(b) #Result = 5

【讨论】:

  • 很确定你的意思是 d ^= c 是真的,d 是一个不同于 c 的布尔值
  • @khelwood 编辑了答案以回答您的问题。
  • @ec2604 抱歉,是我的错字!
猜你喜欢
  • 2017-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-04
  • 2015-11-16
  • 2011-04-01
  • 1970-01-01
  • 2015-02-13
相关资源
最近更新 更多