python中如何调用函数交换两个变量的值
所有代码来在python3.7.1版本实现
以下实例通过用户输入两个变量,并相互交换:
def swap(a,b):
# 创建临时变量,并交换
temp = a
a = b
b = temp
print(a,b)
以上实例中,我们创建了临时变量 temp ,并将 a 的值存储在 temp 变量中,接着将 y 值赋给 a,最后将 temp 赋值给 b变量。
方法二:
def swap2(a,b):
# 不使用临时变量
a,b = b,a
print(a,b)
Python以引用方式管理对象,你可以交换引用,但通常不能交换内存中的对象值。
在函数中,因为a,b是int的对象是原子类型,是不可变参数,他们直接的“引用”是值传递,这里的引用应该是值传递。
方法三:
def swap3(a,b):
"""
^异或运算 1^1=0 1^0=1 0^0=0 x^0=x x^x=0
"""
a = a^b
b = a^b # b = (a^b)^b = a
a = a^b # a = (a^b)^a = b
print(a,b)
异或运算,相同为0,不同为非0的数,例如1^1=0 1^0=1 0^0=0 x^0=x x^x=0
方法三中 a = a ^ b ,
b = (a^b)^b = a,
a = (a^b)^a = b
推荐第二种写法,因为这是python语言的特性。第三种写法,看起来就牛B,可以用来吹牛B,顺便装一B。