id,is的用法,小数据池的概念及编码知识进阶

Posted leiwei123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了id,is的用法,小数据池的概念及编码知识进阶相关的知识,希望对你有一定的参考价值。

一:id 查询内存地址

name = alex
print(id(name))
li = [1,2,3]
print(id(li))

二:is  判断的是内存地址

name1 = [email protected]
name2 = [email protected]
print(name1 == name2)
print(name1 is name2)

三:小数据池    

      小数据池主要是针对数字,字符串两种类型而言的,对于数字而言,其范围在-5--256之间,对于字符串而言,如果其全部由字母组成,都是指向一个内存地址。如果是数字与str(单个字母)想乘,则20以内(包含20)的是同一个内存地址,其他数据类型 则没有小数据池概念。

四:编码知识进阶

1,不同编码之间是不能互相识别对方的二进制,会报错,或者产生乱码.
2,在你的字符串(文件),存储,传输时,必须使用非unicode的二进制(01010101).
3,py3:字符串:编码方式(在内存中的运行方式):默认都是unicode.

4,字符串和字节的关系

byte       对于非中文: 表现形式:  b‘alex‘                                                 内部编码:  utf-8 gbk,gb2312...(非unicode) 你设定的.

              对于中文:  表现形式:  b‘xe3\xf2\x36\xe3\xf2\x36\‘                   内部编码:  utf-8 gbk,gb2312...(非unicode) 你设定的.

str          对于非中文: 表现形式:  ‘alex‘                  内部编码: unicode     

              对于中文:   表现形式:  ‘中国‘                   内部编码: unicode

5,str和byte的转化

1,当字符串为英文时,程序如下:

s = alex
b = s.encode(utf-8)
b1 = s.encode(gbk)
print(s,type(s))
print(b,type(b))
print(b1,type(b1))

2,当字符串为中文时,程序如下:

s = 中国
b = s.encode(utf-8)
b1 = s.encode(gbk)
print(s,type(s))
print(b,type(b))
print(b1,type(b1))

 

 

 

 

 

 

 

 

 

 

 

 

以上是关于id,is的用法,小数据池的概念及编码知识进阶的主要内容,如果未能解决你的问题,请参考以下文章

python基础--小知识点汇总及编码进阶

(15)mongodb mapReduce的概念及用法

ISIS路由协议的概念及实验配置

Python之第七天的努力--基础数据类型补充,编码进阶

Python之第七天的努力--基础数据类型补充,编码进阶

JavaScript闭包的概念及用法