Python中is和==的区别

 

Python中有很多运算符,今天我们就来讲讲is和==两种运算符在应用上的本质区别是什么。

首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。

 

==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等,而is是用来比较判断两个对象的id(身份标识)是否相等。例如下面的比较:

 

1、整数比较

a = 257633
b = 257633
print(id(a))
print(id(b))
print(a is b)

E:\Anaconda3\envs\env_OpenCV\python.exe E:/DeskTop/OpenCV/OpenCV_Book_Codes/1.py
2276735280016
2276735280016
True

Process finished with exit code 0

 

 2、浮点数比较

a = 257633.908
b = 257633.908
print(id(a))
print(id(b))
print(a is b)


E:\Anaconda3\envs\env_OpenCV\python.exe E:/DeskTop/OpenCV/OpenCV_Book_Codes/1.py
1788197364656
1788197364656
True

Process finished with exit code 0

 

 3、字符串比较

a = "helloWorld"
b = "helloWorld"
print(id(a))
print(id(b))
print(a is b)


E:\Anaconda3\envs\env_OpenCV\python.exe E:/DeskTop/OpenCV/OpenCV_Book_Codes/1.py
2490980516784
2490980516784
True

Process finished with exit code 0

 

 4、元组比较

a = (1, 2, 3)
b = (1, 2, 3)
print(id(a))
print(id(b))
print(a is b)


E:\Anaconda3\envs\env_OpenCV\python.exe E:/DeskTop/OpenCV/OpenCV_Book_Codes/1.py
1217654659416
1217654659416
True

Process finished with exit code 0

 

5、列表比较 

a = [1, 2, 3]
b = [1, 2, 3]
print(id(a))
print(id(b))
print(a is b)
print(a == b)

E:\Anaconda3\envs\env_OpenCV\python.exe E:/DeskTop/OpenCV/OpenCV_Book_Codes/1.py
2293379322312
2293379322824
False
True

Process finished with exit code 0

 

 6、字典比较

a = {1: '1', 2: '2', 3: '3'}
b = {1: '1', 2: '2', 3: '3'}
print(id(a))
print(id(b))
print(a is b)
print(a == b)

E:\Anaconda3\envs\env_OpenCV\python.exe E:/DeskTop/OpenCV/OpenCV_Book_Codes/1.py
2160312718984
2160312816808
False
True

Process finished with exit code 0

7、总结

python一切皆对象,id()可获得对象地址(s身份标识)但是对于一些基础的python对象python有intern机制,重复创建时不会在创建新的对象,而是直接一个指针指向原对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Hugh677

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

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

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

打赏作者

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

抵扣说明:

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

余额充值