• bytes和str


    导读:字符串前面加b,表示这是一个bytes流,例如,b'hello'

    内容:

    一、对比

    bytes是字节流,str是字符串,对应的分别是 class bytes 和 class str,对比如下:
    1.str由若干个字符组成,以字符为单位进行操作;bytes由若干个字节组成,以字节为单位进行操作。
    2.str和bytes除了操作的数据单元不同之外,它们支持的所有方法都基本相同。
    3.str和bytes都是不可变序列,不能随意增加和删除数据。

    二、相互转换
    方法一、调用str、bytes类的构造方法
    bytes(string, encoding[, errors])   可以将str转化为bytes类型
    str(bytes[, encoding[, errors]])   可以将bytes转化为str类型

    方法二、调用str.encode()方法,调用bytes.decode()方法
    str.encode(encoding='utf-8', errors='strict')     也可以将str转化为bytes类型,默认utf-8编码
    bytes.decode(encoding='utf-8', errors='strict')   也可以将bytes转化为str类型,默认utf-8编码

    方法三、如果str中都是ASCII字符,直接在前面加b,就可以转化为bytes类型
    例如 'Angle' --> b'Angle'

    三、b'Angle'和'Angle'的区别

    b'Angle'里面存的是字符对应的ASCII码,你看到的是b'Angle',实际上里面保存的是010101....

    中文是不能用ASCII码表示的,所以b'中'报错

    说白了,bytes 只是简单地记录内存中的原始数据,至于如何使用这些数据,bytes 并不在意,你想怎么使用就怎么使用,bytes 并不约束你的行为

    因此,bytes 类型的数据非常适合在互联网上传输,可以用于网络通信编程;bytes 也可以用来存储图片、音频、视频等二进制格式的文件

    参考文献:

    http://c.biancheng.net/view/2175.html

    https://www.cnblogs.com/chownjy/p/6625299.html

  • 相关阅读:
    【安卓】安卓res文件夹下的资源文件与R.java文件里面类的对应关系
    超简单,安卓模拟器手动root
    C++成员初始化顺序
    C++,当类名和对象名称相同时会发生什么?
    C++ 修饰名的格式探究
    总结一下classpath
    卡鲁斯卡尔
    ST表
    P2672跳石头
    2019奥赛考前刷题计划
  • 原文地址:https://www.cnblogs.com/shuaishuaidefeizhu/p/15333530.html
Copyright © 2020-2023  润新知