我在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
检查A
并B
引用同一对象。它不检查数值是否A
相等B
。
您的示例中行为不同的原因是解释器会“插入”具有较小值(通常在-1和99之间,包括-1和99之间的值)的整数-只要结果具有这样的值,就会存在一个具有相同值的short整数回来。
这就解释了为什么对于包含少量数字的示例而不是包含大量数字的示例is
返回True
的原因。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句