在python中小整数对象池包括[-5, 256]。这之间的小整数数值相同时在小整数对象池中属于同一对象即是 a is b 返回True。简单字符串也是如此,对于其他对象则不适用
简单来说 is与not is比较的是数字的地址
==判断的是数字的值在计算机中的数字的值
但是在计算机中的数字所占的地址不在[-5,256]中时,他们的地址不同,所以他们is判断就为false
注意:在pycharm中有bug不会显示flase,对这个的理解需要在命令提示符中打开python或者ipython中进行测试
a = 5 b = 5
这时a与b在这个范围内,所以他们在计算机中的地址相同
所以他们进行判断的==和is都为true
但是当值在[-5,256]之外时
假如a = 257 b = 257 c = -6 d = -6时
这时a与b在这个范围外,所以他们在计算机中的地址不同,但是他们的值相同,所以is判断就为flase,==判断为ture
总结: is与not is比较的是数字的地址
==判断的是数字的值在计算机中的数字的值
但是在计算机中的数字所占的地址不在[-5,256]中时,他们的地址不同,所以他们is判断就为false
标签:判断,数字,遇到,python,计算机,地址,256,赋值 From: https://blog.csdn.net/W030321/article/details/139655121