首先说结论:

1、is, is not 对比的是两个变量的内存地址

2、==,!= 对比的是两个变量的值

由此可以进一步推出:

a、假如比较的两个变量,指向的都是不可变的类型(str, tuple等),那么is,is not 和 ==,!= 是完全等价的。

b、假如对比的两个变量,指向的是不可变得类型(list,dict等),则两者是有区别的。

现分别对这两种情况加以说明:

1、比较的两个变量均指向不可变类型

a="hello"
b="hello"
print(a is b, a==b) # 输出为 True, True

因为"hello" 为str 类型,所以两者指向同一内存地址,故 is 和 == 输出均为 True.

2、比较的两个变量均指向可变类型

a=["hello"]
b=["hello"]
print(a is b, a==b) # 输出为 False, True

虽然两个列表的相同,但是因为列表是可变类型,所以两次赋值的内存地址是不一样的,故 is 输出为False, == 输出为 True.

python3 中 is, is not ,==, != 的区别相关推荐

  1. python3中sort和sorted的区别详解

    sort和sorted的区别 虽然python3中sort()和sorted()都可以用来排序,但二者有以下两个最主要的区别: sort只能应用在列表list上,而sorted可以对所有可迭代的对象进 ...

  2. print在python2和python3的区别_Python2和Python3中print的不同点

    在Python2和Python3中都提供print()方法来打印信息,但两个版本间的print稍微有差异 主要体现在以下几个方面: 1.python3中print是一个内置函数,有多个参数,而pyth ...

  3. python双除_python2和python3 中的除法的区别

    1. python2中有/和//的除法区别: 其中/的用法: >>>1/2 0 即一个整数(无小数部分的数)被另外一个整数除,计算结果的小数部分被截除了,只留下了整数部分 有时候,这 ...

  4. Python2和Python3中除法运算符的区别有哪些?你都知道吗?

    在Python2中,除法的取值结果取整数 >>>7/3 2 即一个整数(无小数部分的数)被另外一个整数除,计算结果的小数部分被截除了,只留下了整数部分. 在Python3中,除法/的 ...

  5. python2 md5库_python版本坑:md5例子(python2与python3中md5区别)

    起步 对于一些字符,python2和python3的md5加密出来是不一样的. # python2.7 pwd = "xxx" + chr(163) + "fj" ...

  6. python中average什么意思_在Python3 numpy中mean和average的区别详解

    mean和average都是计算均值的函数,在不指定权重的时候average和mean是一样的.指定权重后,average可以计算一维的加权平均值. 具体如下: import numpy as np ...

  7. python3中datetime库,time库以及pandas中的时间函数区别与详解

    1介绍datetime库之前 我们先比较下time库和datetime库的区别 先说下time 在 Python 文档里,time是归类在Generic Operating System Servic ...

  8. python2和python3中的range区别

    python2中的range返回的是一个列表 python3中的range返回的是一个迭代值 for i in range(1,10)在python2和python3中都可以使用,但是要生成1-10的 ...

  9. python2和python3的区别 print-Python2与Python3中print用法总结

    Python2中的print用法 在Python2 中 print 是一种输出语句 strHello = "Hello Python" print strHello # Hello ...

最新文章

  1. 如何使网站的右键失效
  2. docker 漏洞测试 靶机环境 靶机平台 vulhub vulapps 简介
  3. python语法基础知识-python基础知识---简单语法
  4. 【干货】什么是好的社交产品
  5. linux中samba详解,详解linux系列之samba的安装及配置
  6. 蓝天采集器自动化采集发布
  7. 【java】java 一个线程占用多少内存
  8. 发现一个很nice的API调试工具
  9. git的安装和简单使用
  10. Java语言编程过程
  11. 通信电子电路实验(一)—— 高频小信号调谐放大器电路设计
  12. Html注释与Javascript注释的嵌套
  13. 在Arcgis地图中插入表格
  14. (收藏)不错的敏捷迭代回顾会步骤
  15. Sphinx 自动化文档
  16. String的intern方法
  17. Cloud 80% 客制化键盘分享,模块拼色设计
  18. 浏览器插件:脚本注入插件Tampermonkey(油猴)
  19. [Mysql]查看mysql默认密码
  20. 使用 qrcodejs2 生成二维码详细API和参数

热门文章

  1. 互联网协议 — IPv4 互联网协议第 4 版
  2. Linux字符设备驱动结构
  3. hdu 4568 Hunter bfs建图+TSP状压DP
  4. SecureCRT错误:The client has
  5. 自建ES迁移至阿里云ES(使用脚本及logstash同步)
  6. 算法笔记_218:花朵数(Java)
  7. Linux中表示“时间”的结构体和相关函数
  8. Qunee for HTML5 在电力方面的应用
  9. 【CF】142 Div.1 B. Planes
  10. python学习笔记之函数(方法)