博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小数据池、is 和 ==的区别
阅读量:5138 次
发布时间:2019-06-13

本文共 987 字,大约阅读时间需要 3 分钟。

小数据池,在一定情况下出现内存共享(只有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)    # Falesn = 5//2n1 = 2print(n is n1)    #True '@' is '@'        #True a = 'a'*21b = 'a'*21print(a is b)    # Falesa = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'b = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'print(a is b)     #Truen = -6n1 = -6print(n is n1)  #Falsen = -5n1 = -5print(n is n1)    #Truen = 257n1 = 257print(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

 

转载于:https://www.cnblogs.com/Mr-wangxd/p/9407164.html

你可能感兴趣的文章
Fedora 17 x86_64 U盘安装详解
查看>>
BZOJ.1007.[HNOI2008]水平可见直线(凸壳 单调栈)
查看>>
PCB板的线宽、覆铜厚度与通过的电流对应的关系
查看>>
linux4.1.36 解决 SPI 时钟找不到 不生成设备 device
查看>>
ibatis 中isNull, isNotNull与isEmpty, isNotEmpty区别(转)
查看>>
Mysql Insert Or Update语法例子
查看>>
python+Eclipse+pydev环境搭建
查看>>
1.8
查看>>
Android各个文件夹对应的分辨率?
查看>>
CentOS 7 安装与卸载MySQL
查看>>
bzoj 4545: DQS的trie
查看>>
IO流的读写
查看>>
Java 如何抛出异常、自定义异常
查看>>
c语言实现n!算法
查看>>
中文文本分类之TextRNN
查看>>
HUAS 1483 mex(莫队算法)
查看>>
asp邮件发送
查看>>
Android ListView下拉刷新 Demo
查看>>
Python-装饰器(Decorator)
查看>>
SAP虚拟机的使用方法
查看>>