码迷,mamicode.com
首页 > 编程语言 > 详细

python 两数交换新写法原理

时间:2019-09-30 19:53:16      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:过程   span   个数   bsp   两数交换   怎么   nbsp   运行   百度   

今天学python,突然发现没有swap函数,那怎么交换两个数呢,难道手写交换,那效率太差了
 
我们看一下实例
 
a = 1
b = 2

a,b = b,a

print(a,b)
 
其实很简单的原理,然而我却琢磨了半天,可能陷入了过程化编程的思维里,一直纠结a和b到底谁先赋值,怎么交换了,想了半天百度一下,瞬间清晰了
 
个人想法:
变量只是存储一个值,我们用用新变量指向另一个变量时,其实指向的是另一个变量存储的值
那么这里就可以这么理解了,a,b = b,a 其实变相的给前面 a,b  两个变量他们的指向的值

 

那么  a = b   b = a 为何又不行呢

 

因为 前面   a = b  时,变量  a  已经指向了b 的值,而后面  b = a  则把a指向的值又传给了b
导致 a = b

 

其实 a,b  =  b,a  的运行步骤应该是
1、在内存中找到b的值,a的值   例如:b = 1  a = 2
2、重新赋值 a,b = 1,2

python 两数交换新写法原理

标签:过程   span   个数   bsp   两数交换   怎么   nbsp   运行   百度   

原文地址:https://www.cnblogs.com/cheneyboon/p/11613857.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!