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 转 字节bytes= '猿说python'= s.encode()  # 编码,默认的是UTF-8print(b)print(type(b))# 字节bytes 转 字符串str= 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__":= "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__":# 字节对象b= 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:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""= 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 发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux shell 获取参数 $,Linux - Shell - 参数获取

HTML5 canvas易错点一.画布的默认宽高 你的浏览器不支持h ...遍历hashMap对效率的影响测试环境:jdk1.7.0_79\Processor 1.7 GHz Intel Core i5 遍历Map的方式有很多,通常场景下我们需要的是遍历Map中的Key和Value. 写了两个方法: pu ...Java Build Path&lpar;Java 构建路径…

如何成为云计算专家?这些必须知道

Level 200、300、400你正处在云计算技术的哪个阶段呢&#xff1f;从进阶&#xff0c;到高级&#xff0c;再到专家AWS INNOVATE 2018 在线技术大会为不同阶段的你量身定制技术内容高屋建瓴的 “主题演讲”包罗万象的 “技术分论坛”亲历亲为的 “Builders 实验室”……我们的进度…

linux重新启动某一个项目,Linux运维知识之supervisor更改某项目配置后 需要重新启动才有效...

本文主要向大家介绍了Linux运维知识之supervisor更改某项目配置后 需要重新启动才有效&#xff0c;通过具体的内容向大家展现&#xff0c;希望对大家学习Linux运维知识有所帮助。在linux服务器上部署了node项目&#xff0c;使用supervisor进行管理梗概了该项目对的某些配置后&a…

Python Pycharm Anacanda 区别

工欲善其事必先利其器&#xff0c;在学习 Python 开发之前我们首先来熟悉几个关键字&#xff1a; 1.Python 2.Pycharm 3.Anacanda 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门可能对于刚接触的小伙伴还是比较懵逼的&#xff0c;一会 Python 一会 A…

走进中国移动(宁夏)数据中心,感受不一样的运营商情怀

文章来源&#xff1a;数字中国万里行 如今&#xff0c;移动端应用已经深入我们生活的方方面面。想出门&#xff0c;“嘀”一声扫码成功&#xff0c;骑上自行车就出发了&#xff1b;家里又该交燃气费了&#xff1f;随时随地登录官网&#xff0c;输入编码就能立刻充值&#xff1b…

mac linux win三系统安装教程,【教程】macbook pro上安装三系统详解教程(mac os x+windows+linux ubuntu)...

有关如何在macbook pro上安装三系统(mac os x&#xff0b;windows&#xff0b;linux ubuntu)&#xff0c;本人本本MB986亲自测试&#xff0c;经过4天奋战已初有小成&#xff0c;特地写下详细安装教程便于惠存&#xff0c;如有问题情多多指证。&#xff3b;nickwsn原创&#xff…

Python2.x 和 Python3.x,如何选择?

一.前言 Python 软件基金会宣布&#xff0c;到 2020 年元旦&#xff0c;将不再为编程语言 Python 2.x 分支提供任何支持。这一天将标志着一出延续多年的戏剧的高潮&#xff1a;Python 从较旧的、功能较弱的、广泛使用的版本过渡到更新的、更强大的版本。 然而&#xff0c;Pytho…

面趣 | 一个月面试4家,3家Offer,来看看面霸真君如何面试的

作者纪小雄已获原作者授权&#xff0c;如需转载&#xff0c;请联系原作者。自古真情留不住&#xff0c;总是套路得人心近来很多小伙伴都抱怨说面试难&#xff0c;难于上青。蚕丛及鱼凫&#xff0c;开国何茫然&#xff0c;呃&#xff5e;好像多背了两句……我&#xff0c;人称 &…

linux真实地址是什么意思,linux – 如何为发件人地址配置真实域名

我尝试使用PHP mail()函数发送电子邮件,但它以某种方式失败,抱怨需要一个真正的域名.在maillog中观察到以下情况&#xff1a;sendmail 4984 r25984: fromapache,size273,class0,nrcpts1,msgid<201.r25localhost.localdomain>,relayapachelocalhostsendmail 4985 r25985: …

Python Hello World入门 - Python零基础入门教程

目录 一.创建 hello world 项目 1.Create New Project2.设置项目所在目录3.项目创建完成 二.编写代码三.运行项目 万丈高楼平地起&#xff0c;编程亦如此。改变世界是结果&#xff0c;坚持努力学习改 Bug 的过程&#xff0c;hello world 是开始&#xff0c;所有语言均是如此。…

统计了50万人的身高数据才发现:大家都爱虚报身高

作者二胖并不胖来源大数据前言已获原作者授权&#xff0c;如需转载&#xff0c;请联系原作者。前些天在知乎上看到一个关于身高的问题。我想既然大家都对身高这么感兴趣&#xff0c;正好之前我在相亲网上爬了50万用户的信息&#xff0c;那不妨来做个统计。关于身高&#xff0c;…

linux系统批量装机,PXE+Kickstart实现无人值守批量安装Linux

PXEKickstart实现无人值守批量安装Linux实验准备&#xff1a;主机myrhel2作为服务器端&#xff0c;新建一个没有安装操作系统的虚拟主机&#xff0c;而且其与服务器端在同一个网段安装的条件&#xff1a;服务器端&#xff1a;支持TFTP&#xff1a;提供引导文件与系统安装所必须…

Python代码注释 - Python零基础入门教程

目录 一.什么是代码注释二.为什么写代码要注释三.代码注释的方式 1.单行注释&#xff0c;使用英文符号 #2.多行注释 方法一&#xff1a;英文状态下使用单引号 ”””方法二&#xff1a;英文状态下使用双引号 “” (和方法一有点类似)方法三&#xff1a;选中单行或者多行&#…

Cloud一分钟 | 阿里云将在英国大区设立数据中心

Hello&#xff0c;everyone&#xff1a;9月17日早&#xff0c;星期一&#xff0c;祝大家工作愉快&#xff01;一分钟新闻时间&#xff1a;完01微 信 群 添加小编微信&#xff1a;tangguoyemeng&#xff0c;备注“进群公司职位”即可&#xff0c;加入【云计算学习交流群】&…

linux elf 视频,linux 实例讲解elf文件

elf是一种文件格式&#xff0c;用于存储linux程序&#xff0c;它内部有什么信息呢&#xff1f;大概包括编制好的计算机指令&#xff0c;数据&#xff0c;计算机在需要的时候把这个文件读取到内存中&#xff0c;cpu就可以从内存中一条一条的读取指令来执行。要想明白elf的格式&a…

Python中文编码 - Python零基础入门教程

目录 一.前言二.为什么会出现乱码三.如何解决乱码四.重点总结五.猜你喜欢 一.前言 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 Python 到目前为止&#xff0c;一共有两个版本&#xff0c;分别是 2.x 和 3.x 版本&#xff0c;根据官方正式通知 2…

【拨云见日】企业上云时代,多样化的公有云服务你了解多少?

对于全球大中型企业来讲&#xff0c;高效、安全、稳定的公有云服务一直是企业拥抱数字时代的最佳上“云”方案。根据Gartner今年4月发布的报告称&#xff0c;2018年全球公有云服务市场规模预计达到1864亿美元&#xff0c;增长率21.4%。如果你也想搭上公有云的快速列车&#xff…

linux自带浏览器如何更新,在deepin上安装edge浏览器后更新系统报错的解决方案

有些人在deepin系统上安装完edge浏览器后采用sudo apt update命令更新系统&#xff0c;却报出了错误&#xff0c;更新失败。原因是更新deepin系统的时候&#xff0c;最好把其它的源禁用了&#xff0c;不然会有各样的问题。报有错误在更新系统时出现以下错误&#xff1a;命中:1 …

Python变量 - Python零基础入门教程

目录 一.前言 1.print 函数2.format 函数 a.format 函数不设置下标b.format 函数设置下标 3.占位符 二.整数三.浮点数四.字符串五.BOOL 值六.重点总结七.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.前言 何为 Python 变量&#xf…

数据海洋中的“智”臻架构 开启智慧计算新纪元——浪潮OpenPOWER FP5280G2服务器全面上市...

【2018年9月12日&#xff0c;北京】 浪潮商用机器有限公司宣布首款基于OpenPOWER9处理器的FP5280G2服务器正式上市。FP5280G2搭载全新OpenPOWER9处理器&#xff0c;是一款面向大规模数据中心的大数据分析应用设计的高端双路主流机架式服务器&#xff0c;以性能、存储及拓展等多…