我需要一个代码来交换两个变量的值,而无需使用第三个变量,而只能使用AND,OR&NOT运算符
我尝试过,但是我总是丢失一个值
确切代码
答案 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)
并将其解压缩到x
和y
答案 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,则会引发错误。