Python中的四种交换数值的方法
方法一
通过新添加中间变量temp的方式,这个方法是最简单的,每个语言都适用。
def swap(a, b):
temp = a
a = b
b = temp
print(a, b)
方法二
Python独有的方法,一行代码就能搞定,直接将两个变量放到元组。
def swap1(a, b):
a, b = b, a
print(a, b)
方法三
这个方法采用加减法来交换。不考虑效率,能达到交换的效果就行
def swap2(a, b):
a = a + b
b = a - b
a = a - b
print(a, b)
方法四
采用异或运算,这个是不是看起来比较高大上。通过按位异或运算来交换两变量的值,可以减少变量的定义。
按位异或运算即计算机会先把十进制数转化为二进制数,并对二进制数讲行从右到左用从1开始编数,然后比较两个二进制数值相同位置的数,如果相同结果为0,不同时结果为1。
“11=010=10^0=0°
如:10101111
则结果为0101
def swap3(a, b):
a = a ^ b # x被y异或一次
b = a ^ b # 此时x存放的是x与y的异或,因此相当于被y又异或一次,x被y异或两次,得到x并赋给y
a = a ^ b # 此时x存放的是x与y的异或,而y存放的就是x的值,因此再异或一次y就相当于异或x一次就得到x