目录

零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

一.字节与字符的区别

在讲解 bytearray bytes string 三者的区别之前,有必要来了解一下字节和字符的区别;

1.字节概念

字节(Byte )是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。最常用的字节是八位的字节,即它包含八位的二进制数;

  • 位 ( bit ) 是计算机 内部数据 储存的最小单位,11001100 是一个八位二进制数;
  •       字节 ( byte ) 是计算机中 数据处理 的基本单位,习惯上用大写  B  来表示, 1B ( byte , 字节 ) = 8 bit ( 位 ) ;
1 KB = 1024 B(字节);
1 MB = 1024 KB;  (2^10 B)
1 GB = 1024 MB;  (2^20 B)
1 TB = 1024 GB;  (2^30 B)

2.字符概念

字符 是指计算机中使用的字母、数字、字和符号,包括:1、2、3、A、B、C、~!·#¥%……—*()——+等等;

  • 一般 utf-8 编码下,一个汉字 字符 占用 3 个 字节;
  • 一般 gbk 编码下,一个汉字 字符 占用 2 个 字节;

3.字符串概念

字符串是字符序列,它是一种抽象的概念,不能直接存储在硬盘 – 字节串是给计算机看的,给计算机传输或者保存的,在 Python 中,程序中的文本都用字符串表示

4.字节串概念

字节串是字节序列,它可以直接存储在硬盘, 字节串是给计算机看的。它们之间的映射被称为编码 / 解码 – 字符串是给人看的,用来操作的;

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python bytearray/bytes/string区别.py
@Time:2021/04/30 08:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""if __name__ == "__main__":# 字符串str 转 字节bytess = '猿说python'b = s.encode()  # 编码,默认的是UTF-8print(b)print(type(b))# 字节bytes 转 字符串strb = b'\xe7\x8c\xbf\xe8\xaf\xb4python'.decode(encoding='UTF-8')  # 解码print(b)print(type(b))'''
输出结果:b'\xe7\x8c\xbf\xe8\xaf\xb4python'
<class 'bytes'>
猿说python
<class 'str'>
'''

二.str / bytes / bytearray 区别

1.str 是字符数据(如:文本,给人看的),bytes 和 bytearray 是字节数据(如:二进制数据,给计算机看的),它们都是序列,可以进行迭代遍历。

2.str 和 bytes 是不可变序列,通过 str 类型的通用函数,比如 find 、replace 、islower 等函数修改后实际上是重新创建了新对象;bytearray 是可变序列,可以原处修改字节。

3.bytes 和 bytearray 都能使用 str 类型的通用函数,比如find 、replace 、islower 等,不能用的是 str 的格式化操作。

4.Python 3.x 中默认 str 是 unicode 格式编码的,例如 UTF-8 字符集。

三.string 与 bytes / bytearray 相互转换

1.string 经过编码 encode 转化成 bytes

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python bytearray/bytes/string区别.py
@Time:2021/04/30 08:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""if __name__ == "__main__":s = "https://www.codersrc.com"# 将字符串转换为字节对象b2 = bytes(s, encoding='utf8')  # 必须制定编码格式# print(b2)# 字符串encode将获得一个bytes对象b3 = str.encode(s)b4 = s.encode()print(b3)print(type(b3))print(b4)print(type(b4))'''
输出结果:b'https://www.codersrc.com'
<class 'bytes'>
b'https://www.codersrc.com'
<class 'bytes'>
'''

2.bytes 经过解码 decode 转化成 string

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python bytearray/bytes/string区别.py
@Time:2021/04/30 08:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""if __name__ == "__main__":# 字节对象bb = bytes("python教程-猿说python","utf-8")#方案一:s2 = bytes.decode(b)# 方案二:s3 = b.decode()print(s2)print(s3)'''
输出结果:python教程-猿说python
python教程-猿说python
'''

注意:如果 bytes 初始化含有中文的字符串必须设置编码格式,否则报错:TypeError: string argument without an encoding

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python bytearray/bytes/string区别.py
@Time:2021/04/30 08:00
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""b = bytes("猿说python")>>> b = bytes("猿说python")
>>> TypeError: string argument without an encoding

四.猜你喜欢

  1. Python for循环
  2. Python 字符串
  3. Python 列表list
  4. Python 元组tuple
  5. Python 字典 dict
  6. Python 条件推导式
  7. Python 列表推导式
  8. Python 字典推导式
  9. Python 函数声明和调用
  10. Python 不定长参数 *argc/**kargcs
  11. Python 匿名函数 lambda
  12. Python return 逻辑判断表达式
  13. Python 字符串/列表/元组/字典之间的相互转换
  14. Python 局部变量和全局变量
  15. Python type 函数和 isinstance 函数区别
  16. Python is 和 == 区别
  17. Python 可变数据类型和不可变数据类型
  18. Python 浅拷贝和深拷贝

本文由博客群发一文多发等运营工具平台 OpenWrite 发布

Python bytearray/bytes/string区别相关推荐

  1. Python bytearray/bytes/string区别 - Python零基础入门教程

    目录 一.字节与字符的区别 1.字节概念 2.字符概念 3.字符串概念 4.字节串概念 二.str / bytes / bytearray 区别 三.string 与 bytes / bytearra ...

  2. Python str / bytes / unicode 区别详解 - Python零基础入门教程

    目录 一.前言 二.Python str / bytes / unicode 区别 1.Python2.x 版本中 str / bytes / unicode 区别 2.Python3.x 版本中 s ...

  3. [转载] python bytearray拼接_python-4-bytes和bytearray

    参考链接: Python bytearray() bytes.bytearray python3引入了两个新类型 bytes 不可变字节序列 可以简单认为字节组成的列表 bytearray 字节数组 ...

  4. Python 数据类型 bytes 与 bytearray 使用教程

    bytes 与 bytearray 是python非常重要的数据类型,但其重要性经常被我们忽视了.在实际开发过程中,又总是遇到 bytes 类型.举例,pickle 序列化, json序列化就是将对象 ...

  5. Python 之 bytes/bytearray 的深入浅出

    Python 之 bytes/bytearray 的深入浅出 1.前言 1.1 Python3 引入两个新类型 1.2 ASCII 1.3 字符串与`bytes bytearray` 1.4 编码与解 ...

  6. python bytes转换为string_Python bytes string相互转换过程解析

    一.bytes和string区别 1.python bytes 也称字节序列,并非字符.取值范围 0 <= bytes <= 255,输出的时候最前面会有字符b修饰:string 是pyt ...

  7. python 将bytes转二进制_Python bytes string相互转换过程解析

    一.bytes和string区别 1.python bytes 也称字节序列,并非字符.取值范围 0 <= bytes <= 255,输出的时候最前面会有字符b修饰:string 是pyt ...

  8. Python:bytes、bytearray

    bytes.bytearray Python3引入两个新类型 bytes:不可变字节序列 bytearray:字节数组.可变 字符串与bytes 字符串是字符组成的有序序列,字符可以使用编码来理解 b ...

  9. python bytearray拼接_python数据类型 ——bytes 和 bytearray

    bytes和 bytearray bytes:可以看作是一组二进制数值(0-255) 的 str 序列 bytearray:可以看作是一组二进制数值(0-255) 的 list 序列 bytes类型 ...

最新文章

  1. ES6的export与Nodejs的module.exports比较
  2. Matlab中自定义函数(一)
  3. [Windows Phone] 实作不同的地图显示模式
  4. 集团bim对集团项目服务器,BIM再添一员,五洋建设集团BIM项目组举行成立仪式
  5. OpenJDK内存错误
  6. Android知识体系
  7. excel匹配_「最全」Excel中查找匹配函数
  8. php递归算法排序,php全排列递归算法代码
  9. Tensor基本操作
  10. VXLAN 技术解析-(1)VXLAN简述
  11. Google Chrome浏览器导入导出书签
  12. 用计算机来猜星座,[转]实用推荐---三个问题猜出对方的星座
  13. JavaScript操作canvas制作前端H5小游戏——Flappy Bird
  14. 【Opencv小项目 1】Opencv实现简单颜色识别
  15. quick-cocos2d-x 绑定C++自定义类
  16. 自动化手游测试视频震撼发布
  17. Android程序员必备的六大顶级开发工具,快加入你的清单,看完没有不懂的
  18. UAF 身份认证框架
  19. 大数据新闻生产的实践与反思
  20. 混乱的国内软件外包公司

热门文章

  1. Dubbo-gok8s注册中心设计方案与实现
  2. 玩转运维编排服务的权限:Assume Role+Pass Role
  3. FPGA设计中遇到的奇葩问题之“芯片也要看出身”
  4. “视网膜”重装来袭 AI技术为视频业务场景赋能
  5. 移动端 IP 优选方案
  6. AliOS Things异步事件框架Yloop
  7. 最新光子计算处理器面世:单个光子芯片集成超万个光子器件,频率达1GHz
  8. 于变局中开新局!《2021中国SaaS市场研究报告》报告发布
  9. 2020人工智能应用挑战赛前瞻 | 专家委员会强大阵容,震撼发布!
  10. 带你全面了解Http和Https