Python中is和==的区别
Posted 回忆唯U你
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中is和==的区别相关的知识,希望对你有一定的参考价值。
==是比较两端的值
is是比较内存地址:
数据的内存地址可用id()获取
在Python中为了存储数据占用较小的内存,对于int类型和str类型内设了小数据池,其中的数据在被使用时,会使用同一内存地址。
int类型的小数据池:
数字的小数据池的范围是-5~256
>>> a = -6 >>> b = -6 >>> a is b False
str类型的小数据池:
1.字符串中不能包含特殊字符
>>> s1 = ‘abcd+‘ >>> s2 = ‘abcd+‘ >>> s1 is s2 False
2.字符串单个字符*20以内内存地址都是一样的,单个字符*21以上内存地址不一致
>>> s1 = ‘a‘*20 >>> s2 = ‘a‘*20 >>> s1 is s2 True >>> s1 = ‘a‘ * 21 >>> s2 = ‘a‘ * 21 >>> s1 is s2 False
以上是关于Python中is和==的区别的主要内容,如果未能解决你的问题,请参考以下文章