趣文网,分享全网好句子、好文章!

Python判断语句中is和==的区别

时间:2023-09-10 05:59:01

相关推荐

Python判断语句中is和==的区别

Python有两个用于相等比较的运算符,“is”和“==”(等于)。在这篇文章中,我将带你们了解Python中“is”和“==”的区别,并通过几个简单地例子说明应该在什么时候使用它们,我们先来看一个情景:

当我还是一个孩子的时候,我们的邻居家有两只双胞胎猫。

这两只猫看起来看起来完全一样 - 同样的木炭毛,同样敏锐的绿眼睛。撇开一些个性怪癖,单从它们的外表根本无法区分它们。但他们确确实实是两只不同的猫,两个不同的生物,尽管它们看起来完全一样。

就如相等和相同在意思上是有差异的,理解这种差异对理解Python中的操作符“is”和“==”是很重要的。

“==”更侧重于检测相等:如果这些猫是Python对象,我们用“==”比较它们,我们会得到“两只猫是相等的”。

“is”侧重于比较相同:如果我们用“is”比较它们,我们会得到“这是两只不同的猫”。

在我把所有的东西都用猫作为类比之前,让我们来看看一些真正的Python代码。

首先,我们将创建一个新的列表对象并将其命名为a,然后定义另一个变量b指向同一列表的对象:

SHAPE * MERGEFORMAT

我们来看看这两个变量,我们可以看到它们指向相同的列表。

SHAPE * MERGEFORMAT

因为两个列表对象看起来相同,所以当我们使用“==”运算符比较它们的相等性时,我们会得到预期的结果:

SHAPE * MERGEFORMAT

然而,这并没有告诉我们a和b是否真的指向同一个对象。当然,我们知道它们是指向同一个对象的,因为我们之前给它们分配了相同的对象,但是假设我们不知道我们会发现什么?

那么将两个变量用“is”操作符进行比较,这会证明两个变量是指向同一个列表对象的:

SHAPE * MERGEFORMAT

我们来看看当我们创建列表对象的相同副本时会发生什么,我们可以通过在现有列表上调用list()来创建一个名为c的副本:

SHAPE * MERGEFORMAT

您将再次看到我们刚刚创建的新列表看起来与a和b指向的list对象相同:

SHAPE * MERGEFORMAT

这就是有趣的地方,如果我们使用“==”运算符来比较列表副本c和初始化列表a,您希望看到什么答案?

SHAPE * MERGEFORMAT

好吧,我希望这是您所期待的,这个结果告诉我们c和a有相同的内容,它们被Python认为是相等的,但它们是否指向同一个对象?我们来看看is操作符:

SHAPE * MERGEFORMAT

以上我们得到了不同的结果。Python告诉我们,c和a指向两个不同的对象,尽管它们的内容是相同的。

所以,回顾一下,我们区分“is”和“==”用以下两个简短的定义:

如果两个变量指向同一个(相同的)对象,则“is”表达式为True。

如果变量所引用的对象是相等的(有相同的内容),则“==”表达式的值为True。

只要记住这个,当您需要在Python中使用is和==的时候,就会想到一对孪生的猫(狗也一样),您就会知道该用哪个了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
显示评论内容(2)
  1. ﹏习惯那些不曾习惯的习惯2023-12-30 03:42﹏习惯那些不曾习惯的习惯[四川省网友]202.146.207.13
    “终于有个简明易懂解释了学到了!谢谢作者分享!”
    顶8踩0
  2. 爱或毁我i2023-11-04 16:50爱或毁我i[宁夏网友]203.27.122.188
    “对于Python初学者is和==区别是个很困惑问题这篇文章解释得非常清晰谢谢!”
    顶2踩0
相关阅读
Python语言基本语法元素之语句 表达式 赋值语句

Python语言基本语法元素之语句 表达式 赋值语句

例如要真正理解 指数增长 的意思,先要知道什么是指数函数、什么是函数曲线

2023-01-24

Python判断语句

Python判断语句

if 判断条件:语句块例如:age = 20 创建变量age代表年龄,赋值为20if age >= 18: 判断变量age的值是否大于等于18print已成年

2023-09-10

柳小白Python学习笔记 6 if语句学习

柳小白Python学习笔记 6 if语句学习

现实中程序往往有很多条指令,也不需要一行一行的执行,而是根据表达式的求值结果来决定执行哪行指令,这里就需要用到控制流语句

2008-09-10

Python入门基础解答条件判断语句和循环语句的新手使用教程

Python入门基础解答条件判断语句和循环语句的新手使用教程

我们日常中也有条件判断和循环,条件判断明天如果下雨就不出门,如果晴天就出门

2023-08-31