小数据池、is 和 ==的区别
2024-08-25 00:28:38
小数据池,在一定情况下出现内存共享(只有int 和 str 才有的)
is 和 ==的区别
id() 打印数据的地址
a = 'hello'
b = 'hello'
print(a == b) 返回True 比较的是数值
print(a is b) 返回False 比较的是地址,看地址方法 print(id(a), id(b))
int类型中 -5 ~ 256之间的数 相同的数全都指向一个内存空间。
字符串中如果有特殊字符他们的内存地址就不一样
字符串中单个*20以内他们的内存地址一样,单个*21以上内存地址不一致
a = 'A' * 20 ; b = 'A' * 20 a is b ==>True
str类型 单个字符乘以20以内的数字都在同一内存地址;只要字符串含有数字那就不共用内存,不会出现小数据池
a = 'alex@'
a1 = 'alex@'
print(a is a1) # Fales n = 5//2
n1 = 2
print(n is n1) #True
'@' is '@' #True
a = 'a'*21
b = 'a'*21
print(a is b) # Fales a = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
b = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
print(a is b) #True n = -6
n1 = -6
print(n is n1) #False n = -5
n1 = -5
print(n is n1) #True n = 257
n1 = 257
print(n is n1) #True # 列表
li =[1,2,3]
li2 =[1,2,3]
print(li is li2) #False # 元组
tu =(1,2,3)
tu1 =(1,2,3)
print(tu is tu1) # False # 字典
dic1 = {'name':'alex'}
dic = {'name':'alex'}
print(dic1 is dic) #False
最新文章
- javascript for循环
- Spring源码分析——BeanFactory体系之接口详细分析
- POJ 1556	 The Doors --几何,最短路
- Android 生成和Pull解析xml
- sqlserver定时备份
- 细说PHP优化那些事
- Java如何让异常处理机制更完备规范
- jQuery 子元素选择
- ehcache memcache redis 区别
- jquery 函数大全
- JavaScript中的for in循环
- S2 深入.NET和C#编程 一: 深入C#.NET框架
- uni-app实现顶部导航栏显示按钮+搜索框
- spring+springmvc+hibernate 整合
- 一个好看的php验证码源码
- Operation not allowed on a unidirectional dataset错误?
- Python Flask之留言板(无数据库)
- hadoop的输入和输出文件
- DOM与document的区别
- Eclipse中创建Maven项目失败