小数据池编码补充
Posted 熊猫的黑白照
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小数据池编码补充相关的知识,希望对你有一定的参考价值。
1、== is id
id查询内存地址
is判断的是内存地址
2、小数据池
Python int str 有小数据池,为了节省内存,其他的数据类型没有小数据池
int范围-5到256
str如果全部由字母组成的字符串,都是指向一个内存地址
如果是str(单个字母)与数字相乘,则数字是20以内(包含20)是同一个内存地址
其它数据类型,则没有小数据池概念
3、编码进阶
GBK用英文8位,中文16位
①不同编码之间是不能互相识别对方的二进制,会报错,或者产生乱码。
②在你的字符串(文件)存储、传输时,必须使用非Unicode的二进制。
PY3中:
字符串:编码方式(在内存中的运行方式):默认都是Unicode
byte类型。
bytes对于非中文:表现形式为:b\'alex\' 内部编码:Utf -8,gbk,gb2312....(非Unicod)
bytes对于中文:表现形式:十六进制b\'xe3\\xf2\\x36\\xe3\\xf2\\x36\\\' 内部编码:Utf -8,gbk,gb2312....(非Unicod)
Str类型
str对于非中文:表现形式为:\'alex\' 内部编码:Unicode
str对于中文:表现形式:\'中国\' 内部编码:Unicode
英文:
s = \'alex\' b = s.encode(\'utf-8\') print(s,type(s)) print(b,type(b))
中文:
s = \'我爱中国\' b = s.encode(\'utf-8\') print(s,type(s)) print(b,type(b))
以上是关于小数据池编码补充的主要内容,如果未能解决你的问题,请参考以下文章