python is和==的区别、编码和解码
一、is 和 ==
1. == 比较,比较左右两端的值是否相等
2. is 比较,比较的是内存地址
id() 获取内存
a = 'abc' print(id(a)) li = [1,2,3] print(id(li))
a = 'abc!' b = 'abc!' print(a == b) print(a is b) #pychrm这里面给优化了所以显示True 应该是False
小数据池
数字的范围 : -5~256
字符串中如果有特殊字符他们的内存地址就不一样
字符串中单个*20以内他们的内存地址都一样,单个*20以上,内存地址不一致
注意:pycharm中,一个py文件中所有相同的字符串,一般都使用一样的内存地址
二、编码和解码
ASCII 编码:最早的编码,至今还在使用,8位,1个字节。
GBK编码:国标码,16位,2个字节
Unicode编码:万国码,32位,4个字节
UTF-8编码:UTF-8. 可变长度的unicode.
英文: 8位. 1个字节
欧洲文字:16位. 2个字节
汉字. 24位. 3个字节
python3中在程序运行阶段使用的是Unicode
传输和存储都是使用bytes
Pycharm存储的时候默认是使用utf-8
encode("UTF-8")编码,UTF-8是指定要编码成什么样的编码类型
以...编码,就以....解码
encode(编码方式) 拿到明文编码后对应的字节
decode(编码方式) 将编码后的字节解码成对应的明文
注意:用什么编码,就用什么解码
s = '中文' print(s.encode('utf-8')) # 编码 encode('utf-8') utf-8 是指定要编码成什么样的编码类型 #b'\xe4\xb8\xad\xe6\x96\x87' print(s.encode('gbk')) #b'\xd6\xd0\xce\xc4'