python中 “==”和“is”的区别

python也学习了一段时间了, 深感坚持学习不易, 所有这里记录一下学习到的一些知识,希望能够与大家分享交流。

一个生活中的例子

“==”和“is”的区别 也可以说是 相同 和 想等的区别, 试想有两只双胞胎猫, 它们的外表看起来完全相同, 都有黑色的毛发以及绿色眼睛, 单从外表无从分别这两只猫,
但不可否认的是, 它们依然是两只不同的猫,两个不懂的个体生命。

这里引出相等相同 两者之间的含义是有所区别的, ==比较的是相等性,用它比较的结果是两只猫是一样的, 这样可能有些抽象, 单从外表来看是这样的。
而 is 操作符 比较的是相同性, 相比 双等于号操作符 ,更加的严谨, 不一样就是不一样
两只猫从本质上来讲是不同的, 仅仅是外表相同而已。

在看晕之前, 看一些有助于理解的代码
这里创建一个列表a ,并赋值给b,同时打印结果

a =[1,2,3]
b = a

打印结果:

[1, 2, 3]
[1, 2, 3]

毫无疑问,二者相同, 由于二者内容相同, 所以用 == 操作符得到结果:

print(a == b) 
True

上面的操作没有告诉我们二者是否指向同一个对象,所以使用is操作符来检测:

print(a is b)
True

结果是指向同一个对象, 也就是二者是一样的, 也是相同的。

再创建一个与a列表完全相同的副本, 对a列表调用 list,

c = list(a)
print(c)

结果自然和a列表一样:

[1, 2, 3]

再用两个操作符测试一下是否相同:

print(a == c)

到这里应该毋庸置疑, 二者内容肯定是相同的

True

那么由列表a创建的副本是否是相等的呢?看一下:

print(c is a)
False

二者不相等, 也很明显, 二者是指向两个不同的变量, 虽然内容相同, 但是不想等
回到两只猫上面, 纵然两只猫是双胞胎, 二者外表相同, 但本质是不同的两只猫。

总结一下

  1. 当两个变量指向同一个变量时, is 表达式的结果为 True,==操作符更不用说,也是True.
  2. 当各个变量指向的对象的内容相同时, == 表达式的结果为 True, is 表达式的结果不一定为True,.

以上是全部内容, 第一次写博客,以后会将学到的知识陆续记下来。共同学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值