• python2与python3的区别


    一:python2python3的区别

    Python2 默认ASCII码                     python3默认UTF-8

    Python2print得括号可加可不加                    python3必须加括号

    Python2中有xrange()                          python3中是range()

    Python zhong raw_input()                                                                  python3input()

    二:内存地址

    =”赋值  

    ==”比较值是否相等    

    is”比较的是内存地址

    id”  id(内容)表示查看内容的地址

    赋值运算指向的是同一个内存地址

    对数字和字符串来说有小数据池的概念

    如:a = 6     b = 6
        a =300    b = 300
    

    当数字在一定的范围内时,ab内存地址一样,当超出范围时,内存地址不一样,目的:节省空间

    数字的范围是:-5~256

    字符串:没有特殊字符是同一个地址,有特殊字符则内存地址不同

            S * 20 是同一个地址,s * 20以后都是两个地址(s为一个字符)

    List , dict , tuple , set集合 没有小数据池的概念

    三:编码 ASCII    Unicode    UTF-8      GBK

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

    ②文件的传输,存储不能是Unicode(太浪费空间)

    四:python3

    Python3的字符串在内存中是用Unicode编码的

    新数据类型:bytes类型;和str类似,区别是编码方式,bytes编码方式是UTF-8GBK或者GB2312str的编码方式是Unicode

    对于英文:str:表现形式为s =abcd

                  编码方式为01010101    Unicode

              bytes:表现形式为s = babcd

                    编码方式为utf-8   gbk

    对于中文:str:表现形式为s=‘中国’

                  编码方式为01010101    Unicode

              bytes:表现形式为s = bxe91e91e01......16进制

                    编码方式为utf-8   gbk

    五:str转化为bytes类型

    encode() 编码

    英文:

    s1 = ‘alex’
    s2 = s1.encode(‘UTF -8’)
    print(s2)
    
    结果:b’alex’
    

    中文:

    转化为UTF-8的编码方式为:

    s1 = ‘中国
    s2 = s1.encode(‘UTF -8’)
    print(s2)
    
    结果:b’xe4xb8xadxe5x9bxbd’   (三个字节为一个字符)
    

    转化为GBK的编码方式为:

    s1 = ‘中国
    s2 = s1.encode(‘GBK’)
    print(s2)
    
    结果:b’xd6xd0xb9xfa’   (两个个字节为一个字符)
    

      

  • 相关阅读:
    统计难题(字典树 模版题)
    hadoop2.2.0集群安装
    HDU 3068 回文串--Manacher
    Poj 3974 回文串--Manacher
    word模版另存为网页(*.htm,*.html),转为jsp页面并加入数据后导出成word
    OpenCV——字符提取并保存
    直线检测
    图像切边
    OpenCV 中轮廓包裹的几个函数boundingRect、minAreaRect、minEnclosingCircle用法
    使用级联分类器实现人脸检测(OpenCV自带的数据)
  • 原文地址:https://www.cnblogs.com/twinkle-/p/10461091.html
Copyright © 2020-2023  润新知