位置: 编程技术 - 正文
推荐整理分享python中is与双等于号“==”的区别示例详解(python等于和双等于),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:python中的双等号,python中双等号与一个等号,python 双等于,python中is和=的区别,python中的双等号,python中的双等号,python中双等号与单等号,python 双等于,内容如对您有帮助,希望把文章链接给更多的朋友!
前言
在开始本文之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、python type()(数据类型)和value(值)。is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪。
发现问题
最近在给小伙伴写段小代码用于爬取一个GIS的各高层数据,python中使用了”is”来代替”==”,结果下载至的时候出了问题。
代码如下
这是用来获取下一个高层数据的URL的函数,结果第二天,小伙伴告诉我说下载到x == 9, y == 0, z == 的时候停止下载了。
探索
首先,根据上述代码可以知道,z按照逻辑是不可能等于的,所有开始怀疑是不是这个函数有问题,但是这么简单的函数,怎么看都不应该有问题啊。于是开始跟代码,发现
处,x == 9, y == 0, z == 时,if后面居然返回的是False。我拿计算器算了好几遍,确定自己不是在二次元后,开始怀疑is的问题。
结果
在StackOverflow上面找到了答案
Is there a difference between == and is in Python
is will return True if two variables point to the same object, == if the objects referred to by the variables are equal.
In your case, the second test only works because Python caches small integer objects, which is an implementation detail. For larger integers, this does not work:
然后自己写了个小段子看看最大的可复用的int是多大
最后发现最大是。
小结:
==比较操作符:用来比较两个对象是否相等,value做为判断因素; is同一性运算符:比较判断两个对象是否相同,id做为判断因素。总结
标签: python等于和双等于
本文链接地址:https://www.jiuchutong.com/biancheng/372309.html 转载请保留说明!友情链接: 武汉网站建设