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。