python的is和is not运算符是干啥用的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的is和is not运算符是干啥用的相关的知识,希望对你有一定的参考价值。

简单来说,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做为判断因素。
参考技术A x in S 运算符用来检测对象 x 是否等于序列 S 中的任何项目;
如果存在相等的项目,则返回 True;否则返回 False;

x not in S 运算符与 not( x in S)是等价的;

in 和 not in 都属于 python 序列运算中的成员测试运算符;
参考技术B 简单来说,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做为判断因素。
参考技术C x is y比较xy是否为同一个对象。
is not返回和is相反的布尔值
参考技术D

用来判断对象的身份的  根据内置函数id

>>> a=1
>>> b=1.0
>>> a==b
True
>>> a is b
False
>>> id(a), id(b)
(1639444272, 4434608)
>>>

第5个回答  2016-04-26 is是判断是不是同一个对象, 就是C语言中指针内容是否相同, 即是不指向同一个内存。
更多的可以参考这篇帖子:
http://bbs.csdn.net/topics/280046457

以上是关于python的is和is not运算符是干啥用的的主要内容,如果未能解决你的问题,请参考以下文章

“pin”操作符是干啥用的,Elixir 变量是可变的吗?

python里的pypi是干啥用的

pycharm是干啥用的?

python中的os.path.splitext是干啥用的

hadoop是干啥用的?

python按着书上来的,不知道为啥错了,那个感叹号是干啥用的?