python的is和is not运算符是干什么用的

 我来答
双庚的奶酪
2016-03-22 · TA获得超过1566个赞
知道小有建树答主
回答量:700
采纳率:92%
帮助的人:292万
展开全部
简单来说,python中的is与is not运算符可判断两个对象是否为同一对象。
若为同一个对象,则对象1 is 对象2为True 。
反正,若非同一个对象,则对象1 is not 对象2为True

要理解Python中的is和is not运算符,首先需要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、python type()(数据类型)和value(值)。

is和==(is not和!=)都是对对象进行比较判断作用的。
但对对象比较判断的内容并不相同。

拿is和==为例,

==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等,例如下面两个字符串间的比较:
>>> a = 'iplaypython.com'
>>> b = 'iplaypython.com'
>>> a == b
True

is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是id是否相同。通过对下面几个列表间的比较,你就会明白is同一性运算符的工作原理:
>>> x = y = [4,5,6]
>>> z = [4,5,6]
>>> x == y
True
>>> x == z
True
>>> x is y
True
>>> x is z
False
>>>
>>> print id(x)
3075326572
>>> print id(y)
3075326572
>>> print id(z)
3075328140

可看出前三个例子都是True,而最后一个是False。
x、y和z的值是相同的,所以前两个是True没有问题。
至于最后一个为什么是False,看看三个对象的id分别是什么就会明白了。

==比较操作符:用来比较两个对象是否相等,value做为判断因素;
is同一性运算符:比较判断两个对象是否相同,id做为判断因素。

同理,
!=比较操作符:用来比较两个对象是否不等,value做为判断因素;
is not同一性运算符:比较判断两个对象是否不同,id做为判断因素。
就烦条0o
2016-03-21 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46487
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部

1、is和is not是看两个标识符是不是引用自一个对象,与==和!=不同,==和!=为判断值是否相同。

2、举例说明:

3、官方说明中写道:

6.10.3. Identity comparisons

The operators is and is not test for object identity: x is y is true if and only if x and y are the same object. x is not y yields the inverse truth value.

4、使用情景

当判断两个变量是不是指向同一个对象时使用is 或者 is not

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式