打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
说说Python 中 is 和 == 的区别?

公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助!

小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。

废话不多说,开始今天的题目:

问:说说Python 中 is 和 == 的区别?

答:讲is和==这两种运算符区别之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。

is 和 == 都可以进行对象比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪?

is 比较的是两个对象的id值是否相等,也就是比较两个对象是否为同一个实例对象,是否指向同一个内存地址。

== 比较的是两个对象的内容是否相等,默认会调用对象的 __eq__ 方法,== 是python标准操作符中的比较操作符,用来比较判断两个对象的值是否相等。

下面分别来说说几种数据类型is的比较情况:


a = 1 #a和b为数值类型
b = 1
print(a is b) #True
print(id(a)) #2037015728
print(id(b)) #2037015728

a = '程序IT圈' #a和b为字符串类型
b = '程序IT圈'
print(a is b) #True
print(id(a)) #24843328
print(id(b)) #24843328


a = (1,2,3) #a和b为元组类型
b = (1,2,3)
print(a is b) #True
print(id(a)) #15001280
print(id(b)) #15001280


a = [1,2,3] #a和b为list类型
b = [1,2,3]
print(a is b) #False
print(id(a)) #15004567
print(id(b)) #14796359

a = {'name':'小明','age':25} #a和b为dict类型
b = {'name':'小红','age':24}
print(a is b) #False
print(id(a)) #15006478
print(id(b)) #14790408

a = set([1,2,3])#a和b为set类型
b = set([1,2,3])
print(a is b) #False
print(id(a)) #15009578
print(id(b)) #14793567

从上面代码可看出,只有数值型、字符串型和元组的情况下,a is b才为True,如果是list,dict或set型时,a is b为False。

不可变数据(3个):Number(数字)、String(字符串)、Tuple(元组)。

可变数据(3个):List(列表)、Dictionary(字典)、Set(集合)。

说说Python可变与不可变数据类型?

如果对于参考答案有不认同的,大家可以在评论区指出和补充,欢迎留言!

1-25、Python面试1-25题汇总

26、说说Python中的类型转换有哪些?

27、Python中实现二分查找的2种方法?

28、说说Python中的lambda表达式?

29、说说Python中的反射是什么?

30、Python删除list重复元素有几种方法?

31、Python中__new__和__init__的区别?

32、说说Python中的help()和dir()函数?

33、说说Python中的GIL是什么?

34、说说提高Python运行效率的技巧?

35、说说对于Python装饰器的理解?

36、说说Python中的异常捕获?

37、Python的单例模式有几种实现方式?

38、Python中的魔法方法有哪些?
39、Python实现自省的方法有哪些?
40、Python中 *args和**kwargs 的含义?
41、说说Python中的正则表达式?
42、Python如何实现斐波那契数列?

关注小猿公众号,每天学习一道题

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python中is和==的区别
Python中变量传递时的引用和赋值
python之(集成开发环境)IDLE
python摘抄
Python FAQ2:赋值、浅拷贝、深拷贝的区别? // 神奕的博客
经典4大Python面试题!初级者,你所需知的(附标准答案)-下篇
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服