设为首页 加入收藏

TOP

Python3之编码详解
2019-05-23 14:50:40 】 浏览:75
Tags:Python3 编码 详解

1)python2可以不用括号()


    python3必须加括号


2)python2中有range()有序列表,xrange()生成器


    python3中只有range()


3)python2中输入是raw_input()


    python3中输入是input()


二,  =   ==   is  三者的区别


1)  =           是赋值


    ==         是比较,值是否相等


        is         比较的是内存地址


    id(内容)   打印的是内容的id       print(id1(内容),id2(内容))


  is 与 == 区别:


  is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。


三,小数据池


        小数据池是int和str在一定范围内共用一个数据池,范围-1— -256。小数据池是为了节省内存。


1)str:不含有特殊字符的共用


            ps:  s1 = ‘alex’    


                      s2 = 'alex'


                      print(s1 is s2)


                    结果是True


2)str: ‘一个字符’*小于等于20的数字,还是共用,如果是大于20的就不共用了。


              多个字符不论乘什么数字,都不共用


3)剩下的list  dict  taple  set等都没有小数据池概念


四,编码


 ascii码:         只有英文字母和特殊字符,一个字节是8位


unicode码:  一个字符是32位,一个字母4个字节


                      一个汉字是32位,一个汉字4个字节


utf-8:           一个字母是8位,一个字母1个字节


                      一个汉字是24位,一个汉字3个字节


gbk;             一个字母是8位,一个字母1个字节


                      一个汉字是16位,一个汉字2个字节


1)各个编码之间的二进制不能互相识别,会乱码。


    uncode占得内存太多,所以不能传输和储存。


    utf-8,gbk,utf-16,utf-32,gb2312,ascii等都可以储存和传输。


2)python3在内存中是用unicode编码方式存储的,所以不能直接储存和传输,要转化为其他编码进行储存和传输。


五,bytes类型


    bytes类型也是一种数据类型。


    bytes不是用unicode方式编码的,所以可以储存和传输。


    bytes的编码方式是utf-8,gbk,ascii,gb2312等。


1)英文


      在python3中:str表现形式; s = ''alex''           str编码形式:unicode


      在bytes中:   str表现形式: s = b''alex''          str编码形式:utf-8,gbk,ascii,gb2312等


      中文


      在python3中:str表现形式; s = ''中国''          str编码形式:unicode


      在bytes中:   str表现形式: s = b''x\e91\e91e91\e91e91\e91         str编码形式:utf-8,gbk,ascii,gb2312等


六,编码  encode


1)将str>>>bytes   可以指定编码方式      


    s1 = ‘alex’


    s11 = s1.encode('utf-8')


    print(s11)


    表面是将str转化为bytes,实际内部是将unicode转化为utf-8,gbk,ascii,gb2312等


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇TypeScript 中的方法重载 下一篇Cmake入门教程 - 编写CMakeLists...

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目