【自学Python】Python比较运算符is和==区别
创始人
2024-05-11 08:47:29

Python比较运算符is和==区别

Python比较运算符is和==区别教程

Python 中,比较运算符 is 和 is not 用于比较两个对象是否是同一个对象,== 和 != 用于比较两个 变量 的数据是否相等。

案例

比较数值型

数值型,使用 is 和 == 效果相同

print("嗨客网(www.haicoder.net)")# 数值型,使用 is 和 == 效果相同
num1 = 1024
num2 = 1024a = num1 == num2
b = num1 is num2
c = num1 != num2
d = num1 is not num2
print('a =', a, 'b =', b, 'c =', c, 'd =', d)

程序运行后,控制台输出如下:

请添加图片描述

我们首先定义了两个 变量,使用赋值运算符分别赋初值为 1024 和 1024。

接着我们将变量 a 的值赋值为 num1 == num2 的比较结果,变量 b 的值赋值为 num1 is num2 的比较结果,变量 c 的值赋值为 num1 != num2 的比较结果,变量 d 的值赋值为 num1 is not num2 的比较结果。

我们可以看到,虽然 num1 和 num2 是两个不同的变量,但因为它们的值相等,所以 num1 == num2 和 num1 is num2 的结果都是 True

最后,我们使用 print() 函数,打印出这四个比较结果的值。

比较字符串型

字符串类型,使用 is 和 == 效果相同

print("嗨客网(www.haicoder.net)")# 字符串类型,使用 is 和 == 效果相同
str1 = "HaiCoder"
str2 = "HaiCoder"
str3 = "Haicoder"a = str1 == str2
b = str1 is str2
c = str1 != str3
d = str1 is not str3
print('a =', a, 'b =', b, 'c =', c, 'd =', d)

程序运行后,控制台输出如下:

请添加图片描述

我们首先定义了三个变量,使用赋值运算符分别赋初值为 “HaiCoder”、“HaiCoder” 和 “Haicoder”。

接着我们将变量 a 的值赋值为 str1 == str2 的比较结果,变量 b 的值赋值为 str1 is str2 的比较结果,变量 c 的值赋值为 str1 != str3 的比较结果,变量 d 的值赋值为 str1 is not str3 的比较结果。

我们可以看到,虽然 str1 和 str2 是两个不同的变量,但因为它们的值相等,所以 str1 == str2 和 str1 is str2 的结果都是 True。

最后,我们使用 print() 函数,打印出这四个比较结果的值。

比较元祖类型

元祖类型,使用 is 和 == 效果相同

print("嗨客网(www.haicoder.net)")# 元祖类型,使用 is 和 == 效果相同
tup1 = ('H', 'a', 'i', 'C', 'o', 'd', 'e', 'r')
tup2 = ('H', 'a', 'i', 'C', 'o', 'd', 'e', 'r')a = tup1 == tup2
b = tup1 is tup2
c = tup1 != tup2
d = tup1 is not tup2
print('a =', a, 'b =', b, 'c =', c, 'd =', d)
print('&tup1 =', id(tup1), '&b =', id(tup2))

程序运行后,控制台输出如下:

请添加图片描述

我们首先定义了两个元祖类型的变量,使用赋值运算符分别赋初值为 “HaiCoder” 和 “HaiCoder”。

接着我们将变量 a 的值赋值为 tup1 == tup2 的比较结果,变量 b 的值赋值为 tup1 is tup2 的比较结果,变量 c 的值赋值为 tup1 != tup2 的比较结果,变量 d 的值赋值为 tup1 is not tup2 的比较结果。

我们可以看到,虽然 tup1 和 tup2 是两个不同的变量,但因为它们的值相等,所以 tup1 == tup2 和 tup1 is tup2 的结果都是 True。

同时,我们通过 id() 函数,打印了变量 tup1 和 变量 tup2 的地址,发现它们的地址是相同的,这才是 is 运算符判断 True 和 False 的核心。

最后,我们使用 print() 函数,打印出这四个比较结果的值。

比较列表类型

当变量的地址不同时,is 运算符返回 False。

print("嗨客网(www.haicoder.net)")# 列表类型,使用 is 和 == 效果不同
lis1 = ['H', 'a', 'i', 'C', 'o', 'd', 'e', 'r']
lis2 = ['H', 'a', 'i', 'C', 'o', 'd', 'e', 'r']a = lis1 == lis1
b = lis1 is lis2
print('a =', a, 'b =', b)
print('&lis1 =', id(lis1), '&b =', id(lis2))

程序运行后,控制台输出如下:

请添加图片描述

我们首先定义了两个 列表类型 的变量,使用赋值运算符分别赋初值为 “HaiCoder” 和 “HaiCoder”。接着我们将变量 a 的值赋值为 lis1 == lis2 的比较结果,变量 b 的值赋值为 lis1 is lis2 的比较结果。

我们可以看到,虽然 lis1 和 lis2 它们的值相等,但它们是两个不同的变量,所以 tup1 == tup2 的结果为 True,但 tup1 is tup2 的结果为 False。

我们通过 id() 函数,打印了变量 lis1 和 变量 lis2 的地址,发现它们的地址是不同的,这才是 is 运算符返回 False 的原因。

Python比较运算符is和==区别总结

在 Python 中,比较运算符 is 和 is not 用于比较两个对象是否是同一个对象,== 和 != 用于比较两个变量的数组是否相等。

如果两个变量的地址相同,那么 is 运算符会返回 True,否则,is 运算符返回 False。

相关内容

热门资讯

新华视点|文旅新体验让传统“潮... ■当敦煌壁画遇上花灯敦煌灯会以“千年华彩 盛世敦煌”为主题,主要分为三个区域:敦煌夜市商业街、西域路...
玉米淀粉商品报价动态(2026... 生意社01月10日讯 交易商品牌/产地交货地最新报价玉米淀粉 食品级含量99河南汇亿海...
欧空局向“可回收”低头,计划魔...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! (来源:IT之家)I...
“马”上尝鲜,进一步激发新春消... (来源:劳动报)转自:劳动报依托供应链升级与“金牌挑手”严选体系,联华于2026新年之际,正式推出“...
华硕 CES 2026亮点速递... 在CES 2026这场科技盛会上,华硕携众多新品亮相。除了主板等核心PC硬件,迷你主机产品线也迎来重...