python比较两个数的和_Python中的is和==比较两个对象的两种方法
Python中的is和==比較兩個對象的兩種方法
在Python中有兩種方式比較兩個對象是否相等,分別是is和==,兩者之間是不同的
==比較的是值(如同java中的equals方法)
is比較的是引用(可以看作比較內(nèi)存地址, 類似于java中的==)
對于:
>>> n = 1
>>> n is 1
True
>>> b = '1'
>>> b is 1
False
>>> n == b
False
由于1和'1'不管在值上面還是在引用上面都不同,所以結(jié)果都為false
對于:
>>> n = 1
>>> n is 1
True
這里有一個知識點,簡單來說,對于整形這種primitive type,引用比較就是值比較,然而,Python在實現(xiàn)整型中采用了這種方式,對于位于-5到256之間的數(shù)字,在內(nèi)存中保留數(shù)組存儲這些數(shù)字,下次使用時候直接引用。而在此范圍外的數(shù)字,則會新建int對象
舉個簡單的example,如下代碼所示:
#a和b的值超出256
>>> a = 257
>>> b = 257
>>> a is b
False
#a和b的值在-5和256之間
>>> a = 256
>>> b = 256
>>> a is b
True
如上例子所示,只要是在-5~256之間的整形,python不會給變量初始化新的內(nèi)存空間,但是一旦超出256,則會分配新的空間。
通過打印兩個對象的id也可以直接的看出兩個對象內(nèi)存地址的區(qū)別,如下所示:
#a和b的值超出256
>>> a = 257
>>> b = 257
>>>
>>>
>>> id(a)
140638347685960
>>> id(b)
140638347686008
#a和b的值在-5和256之間
>>> a = 256
>>> b = 256
>>> id(a)
140638347656864
>>> id(b)
140638347656864
以上就是Python is和==的對比的詳解,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
總結(jié)
以上是生活随笔為你收集整理的python比较两个数的和_Python中的is和==比较两个对象的两种方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: stm32车牌识别_基于STM32单片机
- 下一篇: python编程菱形_Python打印“