• 编码


    一、

    数字、字符串  有小数据池  

    小数据池:如果创建范围之类的数字或字符串,它会共用一个地址,节省内存

    数字的范围 -5~256

    字符串:1、不能含有特殊字符

        2, s*20还是同一个字符 s是一个字符, 超过21以后就是两个地址

    剩下的list,dict,tuple,set都没有小数据池

    二、

    ascii:

      一个字符占8位,一个字节      没有中文

    unicode:

      32位:一个字符占32位,四个字节(英文和中文都是四个字节)

    utf-8:

      英文:一个字符占8位,一个字节

      中文:一个字符占24位,三个字节

    gbk:

      英文:一个字符占8位,一个字节

      中文:一个字符占16位,两个字节

    python3中:

      字符串str 在内存中是用unicode编码

        bytes类型

        对于英文:

          str:表现形式: s = ‘alex'

            编码方式: unicode

          bytes:表现形式: s = b'alex'

             编码方式:utf-8,utf-16,gbk,gb2312,ascii等

        对于中文:

          str:表现形式:s = '中国'

            编码方式:unicode       

          bytes:表现形式: s = b'xe91e91e01e21e31e32'

             编码方式:utf-8,gbki等

    三、encode编码,如何将str --->  bytes

    s1 = 'hjm'
    s2 = s1.encode('utf-8')  #b'hjm'
    s2 = s1.encode('gbk')  #b'hjm'
    print(s2)  
    s3 = '中国'
    s4 = s3.encode('utf-8')  # b'xe4xb8xadxe5x9bxbd'
    s4 = s3.encode('gbk')  # b'xd6xd0xb9xfa'
    print(s4)

    四、decode解码,如何将bytes ---> str

    # str --> bytes  (encode)
    s = '二哥'
    b = s.encode('utf-8')   
    print(b)
    
    #bytes  -->  str   (decode)
    s1 = b.decode('utf-8')
    print(s1)

    如果字符串里面全部是字母,解码的时候可以使用decode('gbk'),因为此时都是根据ascii

  • 相关阅读:
    我还没死!!微信公众号——自媒体的营销之路
    网页中嵌入视频
    保存对象到文件中
    bash array
    正则表达式如何验证邮箱
    software testing
    Verification and validation
    bash array
    12 Linux Which Command, Whatis Command, Whereis Command Examples
    如何进行产品路标规划和项目排序?
  • 原文地址:https://www.cnblogs.com/huangjm263/p/8081552.html
Copyright © 2020-2023  润新知