首页
学习
活动
专区
工具
TVP
发布

和is 的区别

咱们经常会用等号去给两个变量做一个判断,返还值的是布尔值。Python中除了等号,还有一个判断方式就是:is。那你知道两者有啥不同吗?

来看一个示例

a是一个列表,b也是一个列表。a等于b,但是为啥a不是b呢?那是因为Python中变量是指向一个内存地址,被赋值的不同变量存在着不同内存地址。

a和b分别对应的地址

那问题来了:假设a是一个列表,我们把a的值赋予b,b的地址会和a一样吗?咱们来试一下即可。

a和b的地址相同

判断a和b是否为同一个东西

图形展示

假如a和b两个变量分别指向两个内存地址,假设内存里的东西是一样的,它们的判断结果是内存内容相等,内存位置不相等。

==用来判断两个变量是否相等。

is用来判断两个变量是否指向同一个内存。

再来看一个例子

逻辑上来说,a 和 b不在同一块内存地址之上,怎么也是相等的呢?

百度一下

下限验证

上限验证

竟然非常准确,看来百度也是不一无是处啊。问题来了:上面咱们分别对a,b两个变量进行了赋值。咱们都知道Python语言是可以同时赋值的。

同时赋值

结果和想象的一样。

只有一个知识点,但是非常重要。以后我会在每周的三和六更新(传说中的定更),给大家一点仪式感。这篇文章弥补昨天的转载,昨天的文章自己其实写了一些文字,没想到发出去竟然是原文,当做弥补吧。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180906G1TPFP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券