用AND,OR,NOT交换变量值的代码是什么

时间:2019-06-17 18:42:29

标签: python-3.x

我需要一个代码来交换两个变量的值,而无需使用第三个变量,而只能使用AND,OR&NOT运算符

我尝试过,但是我总是丢失一个值

确切代码

4 个答案:

答案 0 :(得分:1)

a = 1
b = 2

# swap
a, b = b, a

答案 1 :(得分:1)

对于整数,可以使用xor:

x = x ^ y
y = x ^ y
x = x ^ y

但是,否则,您应该坚持标准的交换做法:

x, y = y, x

上面的代码创建元组(y, x)并将其解压缩到xy

答案 2 :(得分:0)

>>> a = 5
>>> b = 6
>>> a+=b
>>> b = a - b
>>> a = a - b
>>> a
6
>>> b
5
>>> 

答案 3 :(得分:0)

由于pythonic方法和算术方法已作为答案提交,我将介绍bitwise xor方法as outlined on wikipedia

a = a ^ b
b = b ^ a
a = a ^ b

当然,您可以简化以下操作:

a ^= b
b ^= a
a ^= b

请务必注意,这仅适用于可以按位表示的事物,例如整数。如果在浮点数或字符串或大多数其他数据类型上尝试使用Python,则会引发错误。