Python bytearray/bytes/string区别
目录
零基础 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
四.猜你喜欢
- Python for循环
- Python 字符串
- Python 列表list
- Python 元组tuple
- Python 字典 dict
- Python 条件推导式
- Python 列表推导式
- Python 字典推导式
- Python 函数声明和调用
- Python 不定长参数 *argc/**kargcs
- Python 匿名函数 lambda
- Python return 逻辑判断表达式
- Python 字符串/列表/元组/字典之间的相互转换
- Python 局部变量和全局变量
- Python type 函数和 isinstance 函数区别
- Python is 和 == 区别
- Python 可变数据类型和不可变数据类型
- Python 浅拷贝和深拷贝
本文由博客群发一文多发等运营工具平台 OpenWrite 发布
Python bytearray/bytes/string区别相关推荐
- Python bytearray/bytes/string区别 - Python零基础入门教程
目录 一.字节与字符的区别 1.字节概念 2.字符概念 3.字符串概念 4.字节串概念 二.str / bytes / bytearray 区别 三.string 与 bytes / bytearra ...
- Python str / bytes / unicode 区别详解 - Python零基础入门教程
目录 一.前言 二.Python str / bytes / unicode 区别 1.Python2.x 版本中 str / bytes / unicode 区别 2.Python3.x 版本中 s ...
- [转载] python bytearray拼接_python-4-bytes和bytearray
参考链接: Python bytearray() bytes.bytearray python3引入了两个新类型 bytes 不可变字节序列 可以简单认为字节组成的列表 bytearray 字节数组 ...
- Python 数据类型 bytes 与 bytearray 使用教程
bytes 与 bytearray 是python非常重要的数据类型,但其重要性经常被我们忽视了.在实际开发过程中,又总是遇到 bytes 类型.举例,pickle 序列化, json序列化就是将对象 ...
- Python 之 bytes/bytearray 的深入浅出
Python 之 bytes/bytearray 的深入浅出 1.前言 1.1 Python3 引入两个新类型 1.2 ASCII 1.3 字符串与`bytes bytearray` 1.4 编码与解 ...
- python bytes转换为string_Python bytes string相互转换过程解析
一.bytes和string区别 1.python bytes 也称字节序列,并非字符.取值范围 0 <= bytes <= 255,输出的时候最前面会有字符b修饰:string 是pyt ...
- python 将bytes转二进制_Python bytes string相互转换过程解析
一.bytes和string区别 1.python bytes 也称字节序列,并非字符.取值范围 0 <= bytes <= 255,输出的时候最前面会有字符b修饰:string 是pyt ...
- Python:bytes、bytearray
bytes.bytearray Python3引入两个新类型 bytes:不可变字节序列 bytearray:字节数组.可变 字符串与bytes 字符串是字符组成的有序序列,字符可以使用编码来理解 b ...
- python bytearray拼接_python数据类型 ——bytes 和 bytearray
bytes和 bytearray bytes:可以看作是一组二进制数值(0-255) 的 str 序列 bytearray:可以看作是一组二进制数值(0-255) 的 list 序列 bytes类型 ...
最新文章
- ES6的export与Nodejs的module.exports比较
- Matlab中自定义函数(一)
- [Windows Phone] 实作不同的地图显示模式
- 集团bim对集团项目服务器,BIM再添一员,五洋建设集团BIM项目组举行成立仪式
- OpenJDK内存错误
- Android知识体系
- excel匹配_「最全」Excel中查找匹配函数
- php递归算法排序,php全排列递归算法代码
- Tensor基本操作
- VXLAN 技术解析-(1)VXLAN简述
- Google Chrome浏览器导入导出书签
- 用计算机来猜星座,[转]实用推荐---三个问题猜出对方的星座
- JavaScript操作canvas制作前端H5小游戏——Flappy Bird
- 【Opencv小项目 1】Opencv实现简单颜色识别
- quick-cocos2d-x 绑定C++自定义类
- 自动化手游测试视频震撼发布
- Android程序员必备的六大顶级开发工具,快加入你的清单,看完没有不懂的
- UAF 身份认证框架
- 大数据新闻生产的实践与反思
- 混乱的国内软件外包公司
热门文章
- Dubbo-gok8s注册中心设计方案与实现
- 玩转运维编排服务的权限:Assume Role+Pass Role
- FPGA设计中遇到的奇葩问题之“芯片也要看出身”
- “视网膜”重装来袭 AI技术为视频业务场景赋能
- 移动端 IP 优选方案
- AliOS Things异步事件框架Yloop
- 最新光子计算处理器面世:单个光子芯片集成超万个光子器件,频率达1GHz
- 于变局中开新局!《2021中国SaaS市场研究报告》报告发布
- 2020人工智能应用挑战赛前瞻 | 专家委员会强大阵容,震撼发布!
- 带你全面了解Http和Https