Python入门基础篇 No.10 —— 同一运算符_整数缓存问题

Python入门基础篇 No.10 —— 同一运算符_整数缓存问题


前生篇:布尔值_比较运算符_逻辑运算符

后世篇:字符串_unicode字符集_三种创建字符串方式_len()

小白不看都能懂:Python之真功夫系列(全章)


前言

在这里插入图片描述


一、同一运算符

同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址。

  • is 是判断两个标识符是不是引用同一个对象
  • is not 是判断两个标识符是不是引用不同对象
  • is 与 == 区别:

is 用于判断两个变量引用对象是否为同一个,既比较对象的地址。

== 用于判断引用变量引用对象的值是否相等,默认调用对象的 eq()方法。

在这里插入图片描述

二、整数缓存问题

Python 仅仅对比较小的整数对象进行缓存(范围为[-5, 256]),而并非是所有整数对象。需要注意的是,这仅仅是在命令行中

执行,而在 Pycharm 或者保存为文件执行,结果是不一样的,这是因为解释器做了一部分优化(范围是[-5,任意正整数])。

  • is 比较两个对象的 id 值是否相等,是否指向同一个内存地址;
  • == 比较的是两个对象的内容是否相等,值是否相等;
  • 小整数对象[-5,256]在全局解释器范围内被放入缓存供重复使用;
  • is 运算符比 == 效率高,在变量和 None 进行比较时,应该使用 is。
>>> x = 9999
>>> y = 9999
>>> x == y
True
>>> x is y
False
>>> id(x)
2556022936112
>>> id(y)
2556022936048
>>> a = 9
>>> b = 9
>>> a == b
True
>>> a is b
True
>>> id(a)
140736075798432
>>> id(b)
140736075798432
>>> 

总结

以上帮各位总结好了,收藏,关注即可查收。

前生篇:布尔值_比较运算符_逻辑运算符

后世篇:字符串_unicode字符集_三种创建字符串方式_len()

小白不看都能懂:Python之真功夫系列(全章)


关注下方公众号,免费拿Python学习资料!!!

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值