python比较两个数的和_Python中的is和==比较两个对象的两种方法
Python中的is和==比较两个对象的两种方法
在Python中有两种方式比较两个对象是否相等,分别是is和==,两者之间是不同的
==比较的是值(如同java中的equals方法)
is比较的是引用(可以看作比较内存地址, 类似于java中的==)
对于:
>>> n = 1
>>> n is 1
True
>>> b = '1'
>>> b is 1
False
>>> n == b
False
由于1和'1'不管在值上面还是在引用上面都不同,所以结果都为false
对于:
>>> n = 1
>>> n is 1
True
这里有一个知识点,简单来说,对于整形这种primitive type,引用比较就是值比较,然而,Python在实现整型中采用了这种方式,对于位于-5到256之间的数字,在内存中保留数组存储这些数字,下次使用时候直接引用。而在此范围外的数字,则会新建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不会给变量初始化新的内存空间,但是一旦超出256,则会分配新的空间。
通过打印两个对象的id也可以直接的看出两个对象内存地址的区别,如下所示:
#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和==的对比的详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
python比较两个数的和_Python中的is和==比较两个对象的两种方法相关推荐
- Python基础_第5章_Python中的数据序列
Python基础_第5章_Python中的数据序列 文章目录 Python基础_第5章_Python中的数据序列 Python中的数据序列 一.字典--Python中的==查询==神器 1.为什么需要 ...
- Python基础_第3章_Python中的循环结构
Python基础_第3章_Python中的循环结构 文章目录 Python基础_第3章_Python中的循环结构 Python中的循环结构 一.回顾分支练习题 1.判断是否为一个合法三角形 2.求世界 ...
- ACMNO.30 C语言-宏交换 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。
题目描述 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参.输出已交换后的两个值. 输入 两个数,空格隔开 输出 交换后的两个数,空格隔开 样例输入 1 2 样例输出 2 ...
- C语言习题:/*键盘输入两个非零整数A和B,如果A和B都是偶数则输出两个数的和,如果A和B都是奇数则输出两个数的差,如果A是奇数B是偶数则输出两数积,如果A是偶数B是奇数输出AVB结果*/
#include<stdio.h> /*键盘输入两个非零整数A和B,如果A和B都是偶数则输出两个数的和, 如果A和B都是奇数则输出两个数的差, 如果A是奇数B是偶数则输出两数积, 如果A是 ...
- 在Action类中获得HttpServletResponse对象的四种方法
Struts2:在Action类中获得HttpServletResponse对象的四种方法 在struts1.x Action类的execute方法中,有四个参数,其中两个就是response和req ...
- python描述符魔术方法_学习笔记-Python基础9-面向对象编程OOP-类的成员描述符(property)、类的常用内置属性、类的常用魔术方法、类和对象的三种方法...
一.类的成员描述符(property) 类的成员描述符是为了在类中,对类的成员属性进行相关操作而创建的一种方式,大部分属于数据清洗 属性有三种操作:get获取属性值.set修改或添加属性.delete ...
- TIA博途S7-1200中实现高低字节或高低字调换的几种方法介绍
TIA博途S7-1200中实现高低字节或高低字调换的几种方法介绍 例如S7-1200与某些上位机进行通信时,读写的浮点数的存储方式与上位机不同,即高低字或字节是相反的,此时读取的数据是不对的,需要将高 ...
- 《 Python List 列表全实例详解系列(九)》__列表反转(6种方法)
< Python List 列表全实例详解系列(九)> __列表反转(6种方法) 本章目录: 十一.列表反转的6种方法 (11.1).通过列表的切片操作实现列表反转 (11.2).使用列表 ...
- 机器学习中的矩阵求导的一点总结(三种方法求线性回归最佳参数)
机器学习中的矩阵求导的一点总结(三种方法求线性回归最佳参数) 转载于:https://blog.csdn.net/promisejia/article/details/80159619?ops_req ...
最新文章
- lingo 一些函数
- jae的mongo数据库管理工具(原创)
- oracle集群 节点切换不,Oracle 11gR2 RAC集群单节点关闭开启
- hdu 3068 最长回文(manacher算法)
- div加border样式
- 一场大火,让云计算巨头的数据中心化为灰烬!10 万Rust 游戏玩家的数据永久丢失,无法恢复
- 怎么做应力应变曲线_做了这么多年材料,这些力学性能测试你做对了吗?
- Spring Boot 中统一异常处理最佳实践介绍
- 宝塔面板安装MySQL数据库
- opencv学习十三:图像金字塔和图像梯度
- 2018中国软件和信息技术服务综合竞争力百强企业名单
- 最精彩的英语学习经验总结:俺的英语之路
- 计算机语言栏在哪里,win7语言栏不见了怎么办,教您win7系统语言栏不见了怎么办...
- Be yourself——《按自己的意愿过一生》读后感
- processon画类图和时序图
- 50行Python代码,一键获取微博热点!
- 使用奥维地图加载星图地球数据云地图数据
- 数据结构-树与二叉树-思维导图+小结
- HDU1248:寒冰王座(完全背包)
- JavaFX窗口最大化最小化事件
热门文章
- 基于matlab实现的人脸检测
- java 超时中断_JAVA 超时中断处理
- sqlserver模糊查询不用like_vlookup配合通配符,模糊查询也能很精确,再也不用筛选了...
- python flask web开发 可视化开发_python web开发之——Flask入门教程
- gdb 查看结构体地址内容_程序员的术与道:术——gdb基本操作
- JAVA程序设计计时器代码_Java中的定时器Timer使用示例代码详解
- java mp3数组_Java基础之数组(一)
- manjaro双系统 windows_Win10和Manjaro双系统安装记录
- 20220201--CTF刷题MISC方向--第5题
- 用c语言实现蚂蚁算法,rsa算法的c语言实现