python之编码与解码、is 与==的区别
一、编码与解码
编码的过程其实就是采用一定的编码格式将unicode字符转换成str字符的过程
非ASCII码字符按字节为单位被编码成十六进制转义字符
解码采用的编码格式跟设置和环境有关
ascii 码:
不支持 中文
支持 英文 数字 符号
8位 一个字节
gbk码 国标:
支持 中文,英文,数字,符号
英文 16位 二个字节
中文 16位 二个字节
unicode 万国码
支持 中文,英文,数字,符号
英文 32 位 四个字节
中文 32位 四个字节
utf-8 长度可变的万国码 最少用8位
英文 8位 一个字节
中文 24位 三个字节
encode(编码方式) ---- 拿到明文编码后对应的字节
decode(编码方式) -----将编码后的字节解码成对应的明文
二、is 与 == 的区别
== 是比较值
is 比较内存地址
id() ---- 获取内存地址
小数据池:
数字的小数据池范围是 -5 ~ 256
字符串:
字符串中不能包含特殊符号 + - * / @ 等等
字符串单个字符*20以内内存地址都是一样的,单个字符*21以上内存地址不一致
注意: pycharm是个坑, 一个py文件中所有相同的字符串 一般都是使用一样的内存地址== 比较俩边的值