【自学Python】Python比较运算符is和==区别

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

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

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

案例

比较数值型

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

print("嗨客网(www.haicoder.net)")

# 数值型,使用 is 和 == 效果相同
num1 = 1024
num2 = 1024

a = 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。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

i白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值