This question already has answers here:
Understanding Python's “is” operator
(11个答案)
5年前关闭。
我在python交互模式下尝试了此操作:
谁能解释为什么'(377 * 35)是13195'是错误的?
提前致谢!
(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
检查A
和B
引用相同的对象。它不检查A
在数值上是否等于B
。
您的示例中行为不同的原因是整数值较小(通常在-1到99之间)
包含在内)由解释器“插入”-只要结果具有这样的值,
返回具有相同值的现有short int。
这解释了为什么is
对于涉及小数的示例返回True
而不为涉及大数的示例返回的原因。
关于python - 算术中奇怪的python'is'运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25745788/