美文网首页
Python中“==”和“is”的区别

Python中“==”和“is”的区别

作者: zhu_yong | 来源:发表于2018-06-25 12:23 被阅读0次
  • is比较的是内存地址(可以用id()查看内存地址)
  • ==比较值

    先在shell中输入以下代码: image.png
image.png

在shell中处理含有非单词字符的字符串的时候会临时分配多个内存

单词字符:正则中的\w,包括大小写字母、数字、下划线这三类。

可以试试123 、x!y!z 、 x y z以及其他任何组合

但是在shell里是一行一行执行,所以同一行的话两个字符串的内存地址是一样的。 image.png

但是将代码放入可执行文件中执行就又不同了:
将以下代码写入文件test.py中,执行文件

a = 'shi yan lou'
b = 'shi yan lou'
print(a is b)
执行结果: image.png
  • 在shell中单行执行时是临时分配的内存地址,而在程序中,字符串是不可变类型,只有一个地址。

注意!!!以上只是说了字符串等不可变对象
list、dict等可变类型无论在shell里还是在代码中id都是不一样的。

有人可能会问tuple,tuple虽然是不可变类型,但是具有可变性。意思是虽然tuple本身不可变,但tuple中元素可以是list等可变的类型!

有意思的一点是None这个值,任何时候任何地点无论什么情况它都风雨无阻的id(None) == 10061536。

相关文章

  • 逻辑运算符和位运算符

    Python 中 (&,|)和(and,or)之间的区别_Python_Rowlingz-CSDN博客

  • Python 中 is 和 == 的区别

    Python 中的 is 和 == 今天聊一下Python中的 is 和 == 运算符的区别、 is和==都是对对...

  • 算术运算符

    需要注意的是幂:**取整除://"//"和'/'的区别是,在python2中没有区别,在python3中,'/'得...

  • Python中 is 和 == 的区别

    是不是很诧异,a, b都是‘hello’的时候is和==都是True,为什么是‘hello world’的时候就不...

  • Python 中 is 和== 的区别

    初学python的时候,发现python中== 用来比较两个string的值,之前用java的话,比较string...

  • python 中is和= = 的区别

    Python中的对象包含三要素:id、type、value 其中id用来唯一标识一个对象,type标识对象的类型,...

  • Python中is和==的区别

    Python中有很多运算符,今天我们就来讲讲is和==两种运算符在应用上的本质区别是什么。 在讲is和==这两种运...

  • Python中“==”和“is”的区别

    is比较的是内存地址(可以用id()查看内存地址) ==比较值先在shell中输入以下代码:image.png 在...

  • Python中is和==的区别

    要理解Python中is和==的区别,首先要理解Python对象的三个要素: is和==区别 程序举例 例1: 例2:

  • Python中 is 和 == 的区别

    Python中的对象包含三要素:id、type、value。 id 用来唯一标识一个对象,type 标识对象的类型...

网友评论

      本文标题:Python中“==”和“is”的区别

      本文链接:https://www.haomeiwen.com/subject/sdgeyftx.html