开发者学堂课程【Python 入门 2020年版:交换两个变量的值】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10296
交换两个变量的值
内容介绍:
一、方法一:使用第三个变量实现
二、方法二:使用运算符
三、使用异或运算符
四、方法四:使用 Python 特有
本章讲解交换两个变量的值
一、方法一:使用第三个变量实现
现在 a 的值为13,b 的值为20,现打印结果使两值互换。让 a 的结果变成20,b 的结果变成13。
1.代码讲解(10-交换两个变量的值)
a=13
b=20
//方法一:使用第三方变量
c = b
b = a
a= c
print(a)
print(b)
2. 输出结果
20
13
3.错误写法解析
a=b
b=a //错误
现有两色块,红色色块表示 a,绿色色块表示 b,现使两色块颜色交换。
当使用 a=b b=a 来交换色块颜色,是错误的。
执行 a=b b=a 时是一个赋值操作,a=b 执行后 b 的值会覆盖 a,即原本为红色色块的 a 会被绿色色块 b 给覆盖,=表示把右边的值赋给左边,相当于 b 绿色色块的颜色覆盖了 a 红色色块的颜色,两边都会变成绿色色块,故无法交换。
4.思路分析
此时采取第三方变量的操作,定义一个 c 变量,先将 b 的值赋给 c,即 c=b 表示把 b 的值给 a,即将 b 色块复制到 c 色块。
执行完 c=b,后 b 的值便不会丢失,此时 b 的值可以被覆盖,将 a 的值赋给 b ,操作即 b=a。
最后将 a 的值变成 b 原本的值(绿色色块),即 a=c 就可以交换成功。至此两者色块颜色交换成功。
二、方法二:使用运算符
1.代码讲解(10-交换两个变量的值)
a=13
b=20
#方法二:使用运算符来实现,只能是数字,字符串等无效。
a = a + b
b =a - b
a = a - b
print(a)
print(b)
2.输出结果
20
13
3.思路分析
a=a+b 表示将 a 的值和 b 的值求和,再将其赋给 a。即 a 红色色块和 b 绿色色块拼接在一起,再放入 a 中。
此时 a 原来的红色色块部分会和放入的拼接色块中的红色色块重合,此时 a 为红绿拼接的色块。
再执行 b=a-b,将 a 与 b 的差值赋给 b,即拼接红绿色块 a 中绿色色块去除,剩下红色色块(a 原始色块颜色)赋给 b。此时 a 为拼接色块,b 变为红色色块。
最后 a=a-b,将 a 与 b 的差值再次赋给 a(但此时 b 为红色),即去除拼接色块 a中红色色块,剩下绿色色块(b 原始色块颜色)赋给 a。
此时交换成功,a 为绿色,b 为红色。
三、使用异或运算符
1.代码讲解(10-交换两个变量的值)
a=13
b=20
方法三:使用异或运算符
a = a ^ b
b = a ^ b //^表示异或运算符
a =a ^ b
print(a)
print(b)
2.输出结果
20
13
3.原理
a ^ b^ b==>a a 异或 b 再异或 b 等于本身
过于繁琐,平常不做使用。
如:
1234^872938^872938
输出结果
1234 //等于本身
四、方法四:使用 Python 特有
1.代码讲解(10-交换两个变量的值)
a=13
b=20
#方法四:使用 python 特有
a , b = b , a //其他语言不能这样写,简单为首选
print(a)
print(b)
2.输出结果
20
10