Pyhton不使用第三个变量,完成两个变量值的更换

Pyhton不使用第三个变量,完成两个变量值的更换

1、使用第三个变量的情况下怎么更换两个变量的值?
这里我们用Python语言进行举例:

			
			a = 10
			b = 20
			c = a
			a = b
			b = c
			print("a=",a)
			print("b=",b)
			

运行结果如下图所示:
引入第三方变量互换两个变量的值
我们可以把a和b类比成两个水杯,c是另一个水杯,此时想把a中的水和b中的水进行对换,我们可以使用c作为中间容器,然后进行换水。

2、 不引入第三个变量的情况下,怎么实现两个变量值的互换?
既然是不使用第三个变量,我们只能对原有变量进行操作,也就是只能操作原有的两个杯子和其中的水。
Python代码如下:


			a = 10
			b = 20
			
			a = a + b
			b = a - b
			a = a - b
			
			print(a)
			print(b)

代码运行结果如下图所示:
不引入第三方变量更换两个变量的值对应图
同样,这里我们依然可以认为是a和b是两个规格一样的杯子,但是这里对水的总量有要求,假设a和b是同等规格的杯子的话,那么a中的水和b中的水的总容量不能超出其中任意一个杯子的容量,如果说超出的话,那么就会造成数据的内存溢出。
(1)我们先将b中的水倒入a中,然后a现在的水量为原来a中水量和b中水量的总和。
(2)然后我们需要想一下的是,a的初值是多少?10,没错,就是10。那么a和b的总量是30,也就是说a = (a+b)(就是总和a=a+b)- b是成立的,我们需要把a的值赋给b,所以有 b = a - b 完成了将a的值赋给b 。既然a的值已经赋给了b , 那么 a = a - b 两个数值对换完成。
(3)这种方式进行变量值的互换的前提是:
①两个数据类型一致(当然Python是弱类型语言,这里自己补课),所以说是规格一样的杯子
②两个值的总和不能超过该类型变量的上限值(数据内存溢出)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章