This question already has answers here:
Understanding Python's “is” operator
                                
                                    (11个答案)
                                
                        
                                5年前关闭。
            
                    
我在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之间)
包含在内)由解释器“插入”-只要结果具有这样的值,
返回具有相同值的现有short int。

这解释了为什么is对于涉及小数的示例返回True而不为涉及大数的示例返回的原因。

关于python - 算术中奇怪的python'is'运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25745788/

10-12 16:38
查看更多