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

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


文章目录

  • Python入门基础篇 No.10 —— 同一运算符_整数缓存问题
  • 前言
  • 一、同一运算符
  • 二、整数缓存问题
  • 总结

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

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

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


前言

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


一、同一运算符

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

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

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

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

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

二、整数缓存问题

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学习资料!!!

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

你可能感兴趣的:(#,基础,python,编程语言,经验分享,程序人生,windows)