交换两个变量的值 | 学习笔记

简介: 快速学习交换两个变量的值,介绍了交换两个变量的值系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【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 来交换色块颜色,是错误的。

 图片23.png

执行 a=b b=a 时是一个赋值操作,a=b 执行后 b 的值会覆盖 a,即原本为红色色块的 a 会被绿色色块 b 给覆盖,=表示把右边的值赋给左边,相当于 b 绿色色块的颜色覆盖了 a 红色色块的颜色,两边都会变成绿色色块,故无法交换。

图片24.png

4.思路分析

此时采取第三方变量的操作,定义一个 c 变量,先将 b 的值赋给 c,即 c=b 表示把 b 的值给 a,即将 b 色块复制到 c 色块。

图片25.png

执行完 c=b,后 b 的值便不会丢失,此时 b 的值可以被覆盖,将 a 的值赋给 b ,操作即 b=a。

图片26.png

最后将 a 的值变成 b 原本的值(绿色色块),a=c 就可以交换成功。至此两者色块颜色交换成功。

图片27.png

 

二、方法二:使用运算符

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 中。

图片28.png

此时 a 原来的红色色块部分会和放入的拼接色块中的红色色块重合,此时 a 为红绿拼接的色块。

图片29.png

再执行 b=a-b,将 a 与 b 的差值赋给 b,即拼接红绿色块 a 中绿色色块去除,剩下红色色块(a 原始色块颜色)赋给 b。此时 a 为拼接色块,b 变为红色色块。

图片30.png

最后 a=a-b,将 a 与 b 的差值再次赋给 a(但此时 b 为红色),即去除拼接色块 a中红色色块,剩下绿色色块(b 原始色块颜色)赋给 a。

图片31.png

此时交换成功,a 为绿色,b 为红色。

图片32.png

 

三、使用异或运算符

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

相关文章
|
25天前
不使用第三方变量的情况下交换两个数值
不使用第三方变量的情况下交换两个数值
18 1
|
1天前
【变态面试题】【两种解法】不能创建临时变量(第三个变量),实现两个数的交换
【变态面试题】【两种解法】不能创建临时变量(第三个变量),实现两个数的交换
5 0
【变态面试题】【两种解法】不能创建临时变量(第三个变量),实现两个数的交换
|
6月前
交换两个数的值的方法(三种)
交换两个数的值的方法(三种)
34 1
|
8月前
不使用第三变量。如何对2个数进行交换
不使用第三变量。如何对2个数进行交换
50 0
|
4月前
交换两个变量的值
交换两个变量的值
21 0
|
10月前
|
算法
【经典算法问题 二】交换两个变量值,不使用第三个变量
【经典算法问题 二】交换两个变量值,不使用第三个变量
45 0
|
11月前
|
数据安全/隐私保护 C语言
【C语言】交换两个int变量的值,不能使用第三个变量
交换两个int变量的值,不能使用第三个变量。即a=3,b=5,交换之后 a=5,b=3
|
算法 Java
[算法] swap函数交换两个数值未改变问题解决
[算法] swap函数交换两个数值未改变问题解决
C/C++语言交换两个变量的七种方法
C/C++语言交换两个变量的七种方法
367 0
C/C++语言交换两个变量的七种方法
输入一个整形数组,实现一个函数,来调整该数组中数字的顺序//使得数组中所有奇数位于数组的前半部分,所有偶数位于数组的后半部分
输入一个整形数组,实现一个函数,来调整该数组中数字的顺序//使得数组中所有奇数位于数组的前半部分,所有偶数位于数组的后半部分
110 0