• 欢迎访问极客猴,分享 Python 入门,网络爬虫,数据分析,赚钱思维相关的技术与思维QQ群
  • 本站点文章首发于微信公众号【极客猴】,欢迎关注,第一时间接受文章推送~
  • 如果您觉得本站非常有看点,那么赶紧使用 Ctrl+D 收藏极客猴吧

Python 中“is”和“==”的区别

Python 必知必会 猴哥 2年前 (2018-06-28) 17次浏览 0个评论

相比 C/C++ 、Java 等强类型语言, Python 定义变量的方式就简单多了。我们只需要给变量起个变量名,而不需要给变量指定类型。

正因为 Python 弱化类型这一概念,所以我们能随意给变量赋值。值可以是整数,浮点数,字符串,列表等。

a = 1
a = 3.33
a = 'monkey'
a = [1, 2, 3]

凡事都有正反两面。使用弱类型语言编程,我们可以不需要定义变量类型,可以随意转换类型,代码看起来很简介。但是在变量判断是否相等时候,会给我们造成一定困惑。

判断值相等,是选择 “is” 还是 “==” 了?

当你了解 Python 的语言特性之后,这个问题就会迎刃而解。Python 中,万物皆为对象。 每个对象有 3 个属性。分别是:id,type,value。

  • id 就是对象的内存地址,可以通过内置函数 id() 查看对象引用的地址。
  • type 表示对象的类型。Python 也是有类型的概念。对于编译器或者解释器而言,类型可以协助确保上面那些电荷、字节在程序的运行中始终如一地被理解。我们可以通过内置函数 type() 查看对象的类型。
  • value 就是对象的值。

综上所述:
如果我们要判断两个变量的值是否相等,需要使用 “==”。一般运用在判断数值和字符串是否相等。

a = '123'
b = '123'
print(a=b)
>> True

c = 1
d = 2
print(c==d)
>> False

is 则是用来判断两个变量的 id 是否相等,当两个变量的 id 相等时,说明这两个变量指向的地址是相同的,那么这两个变量的一切属性(包括:类型、值)都相同。同时,Python 也规定 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于 False。所以我们可以使用 is 来判断变量是否为空。

str = ""
print(str is None)
>> False
print(str is not None)
>> True

Python 中“is”和“==”的区别

文章首发于微信公众号【极客猴】,欢迎扫码关注获取第一时间推送


极客猴版权所有,内容均为原创丨本网站采用共享 4.0 国际 CC BY-NC-SA 4.0 许可协议
文章标题:Python 中“is”和“==”的区别
转载请保留页面地址:https://geekmonkey.top/208.html
喜欢 (0)
[赞赏码]
分享 (0)
猴哥
关于作者:
分享自己总结的Python爬虫,Web开发,数据分析的心得。此外还输出自己的思考内容,涉猎产品知识、个人成长等,每周给你带来头脑大爆炸
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址