Python中a is b和a==b的区别?

1、 a == b , 这是一个比较运算符,用于比较两个对象的value(值)是否相同

相同则返回True 否则返回False

示例:

# 以下用于示例 a == b 用法
>>> a = 1 # a, b 数值类型
>>> b = 1
>>> a == b
True
>>> a = 'zhaoxuan'# a,b 字符串类型
>>> b = 'zhaoxuan'
>>> a == b
True
>>> a = [1, 2]# a,b 列表类型
>>> b = [1, 2]
>>> a == b
True
>>> a = 1 # a, b 数值类型
>>> b = 2
>>> a == b
False
>>> a = 'hello'# a,b 字符串类型
>>> b = 'world'
>>> a == b
False
>>> a = [1, 2]# a,b 列表类型
>>> b = [1, 3]
>>> a == b
False

2 a is b,用于比较两个对象的物理id。

如果相同则返回True,否则返回False

示例:

# 以下用于示意 a is b 用法:
>>> a = -5# a, b 数值类型
>>> b = -5
>>> a is b
True
>>> a = -6
>>> b = -6
>>> a is b
False
>>> a = 256
>>> b = 256
>>> a is b
True
>>> a = 257
>>> b = 257
>>> a is b
False
>>> b = 'zhaoxuan'# a, b 字符串类型
>>> a = 'zhaoxuan'
>>> a is b
True# 简单字符串可用
>>> id(a)
42111997
>>> id(b)
42111997
>>> a = 'wo shi zhao xuan'
>>> b = 'wo shi zhao xuan'
>>> a is b
False# 复杂字符串不可用
>>> id(a)
2146074255200
>>> id(b)
2146074255272
>>> a = (1,2,3) # a, b 元组类型
>>> b = (1,2,3)
>>> a is b
False
>>> id(a)
2146074256320
>>> id(b)
2146074256378
>>> a = [1,2,3]  #a,b list类型
>>> b = [1,2,3]
>>> a is b
False
>>> a = {'a':1,'b':2} #a,b dict类型
>>> b = {'a':1,'b':2}
>>> a is b
False
>>> a = set([1,2,3])#a,b set类型
>>> b = set([1,2,3])
>>> a is b
False
>>> id(a)
2146074299258
>>> id(b)
2146074299236

来源:PY学习网:原文地址:https://www.py.cn/article.html

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Python中a is b和a==b的区别?