is 和 == 的区别
小数据池
数字小数据池的范围是 -5~256
字符串中如果有特殊字符,他们的内存地址就不一样
字符串中的单个字符*20以内他们的内存地址一样,单个*21以上内存地址就不一致
黑框框 == 终端
a = 'alex@'
a1 ='alex@'
print(a is a1) False
n= n //2
n1= 2
print(n is n1) True
a = 'a'*21
b ='a'*21
print(a is b) False
a = 'aaaaaaaaaaaaaaaaaaaaaaaa'
b = 'aaaaaaaaaaaaaaaaaaaaaaaa'
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 (在pycharm中判断是对的)
总结
== 比较 比较的是两边的值
is 比较 比较的是内存地址 id()
编码和解码
ascii 码:
不支持 中文
支持 英文 数字 符号
8位 一个字节
gbk码 国标:
支持 中文,英文,数字,符号
英文 16位 二个字节
中文 16位 二个字节
unicode 万国码
支持 中文,英文,数字,符号
英文 32 位 四个字节
中文 32位 四个字节
utf-8 长度可变的万国码 最少用8位
英文 8位 一个字节
中文 24位 三个字节
Python3中 程序运行阶段 使用的是unicode 显示所有的内容
bytes类型
传输和存储都是使用bytes
pycharm 存储的时候默认是使用utf-8
总结
is 和 == 区别
is 比较内存地址
id() ---- 获取内存地址
小数据池:
数字的小数据池范围是 -5 ~ 256
字符串:
字符串中不能包含特殊符号 + - * / @ 等等
字符串单个字符*20以内内存地址都是一样的,单个字符*21以上内存地址不一致
注意: pycharm是个坑, 一个py文件中所有相同的字符串 一般都是使用一样的内存地址
== 比较俩边的值
编码和解码
encode(编码方式) ---- 拿到明文编码后对应的字节
decode(编码方式) -----将编码后的字节解码成对应的明文
注意: 用什么进行编码就要什么进行解码 不然后会懵逼!