有两种方法:一是通过异或位运算实现;二是通过加减操作实现
一、通过异或位运算实现
def exchange(x
,y
):
x
=x
^y
y
=x
^y
x
=x
^y
return x
,y
x
= 2
y
= 3
newX
, newY
= exchange
(x
,y
)
print(newX
, newY
)
位运算就是基于整数的二进制表示进行的运算。理解位运算首先要理解二进制。位运算总共只有5种运算:与(&)、或(|)、异或(^)、左移(<<)、右移(>>)。在异或运算中规定了以下:
0 ^ 0 = 0 1 ^ 1 = 0 1 ^ 0 = 0 0 ^ 1 = 0 0 ^ x = x (x为任何数) 1 ^ x = x取反(x为任何数) x ^ x = 0(x为任何数)
二、通过加减操作实现
def exchange(x
, y
):
x
= x
+ y
y
= x
- y
x
= x
- y
return x
, y
x
= 2
y
= 3
newX
, newY
= exchange
(x
,y
)
print(newX
, newY
)
值得注意的是,使用该方法交换两个数的值时有可能会发生溢出现象,因此只适用于对数值不大的数执行操作。