算术中奇怪的python'is'运算符

hugle

我在python交互模式下尝试了此操作:

>>> (1*1) is 1
True
>>> (377*35) is 13195
False
>>> 377*35
13195
>>> 377*35 is 377*35
False
>>> 1*1 is 1
True

谁能解释为什么'(377 * 35)是13195'是错误的?

提前致谢!

姓名

A is B检查AB引用同一对象。它不检查数值是否A相等B

您的示例中行为不同的原因是解释器会“插入”具有较小值(通常在-1和99之间,包括-1和99之间的值)的整数-只要结果具有这样的值,就会存在一个具有相同值的short整数回来。

这就解释了为什么对于包含少量数字的示例而不是包含大量数字的示例is返回True原因

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章