不用第三个变量交换两变量值的几种方式

阅读: 评论:0

不用第三个变量交换两变量值的几种方式

不用第三个变量交换两变量值的几种方式

目录

  • 1、算术运算
  • 2、异或(^)
  • 3、python中的拆包装包

变量a=10,b=20,不借助第三个变量实现两变量值的交换。

1、算术运算

好久之前就看见过这道题,当时只知道是用异或^解决,后来也看到了有人用加减或乘除解决,这种算术运算很好理解代码贴在下面。

加减实现:

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

乘除实现:

a = 10
b = 20
a = a * b
b = a / b
a = a / b
print(a, b)  # 20.0   10.0   小数点是因为python中除法结果为浮点型

2、异或(^)

对异或的简单概述就是相同为假(0),相异为真(1)。

异或操作主要的关键点在于:假设a^b=c,则c^b=a,c^a=b,也就是说一个数连续异或同一个数两次结果不变。

我们都知道计算机中数据都是以二进制形式存储的,现在任意假设两个变量a, b的二进制,a=101101,b=001010,a^b^b=a^(b^b),而根据异或的定义,任意数和自身异或都会等于0,例如上述b^b=001010^001010=000000。同样根据异或的定义,任何数和0异或都会等于这个数本身,就像a^0=101101^000000=101101。

搞清了异或的逻辑,代码就很容易写出来了

# 异或实现
a = 10
b = 20
a = a ^ b
b = a ^ b
a = a ^ b
print(a, b)  # 20   10

3、python中的拆包装包

a = 10
b = 20
a, b = b, a
print(a, b)  # 20    10

本文发布于:2024-02-03 00:37:20,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170689184047509.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:几种   第三个   变量   方式   变量值
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23