目录

  • 一.字节与字符的区别

    • 1.字节概念
    • 2.字符概念
    • 3.字符串概念
    • 4.字节串概念
  • 二.str / bytes / bytearray 区别
  • 三.string 与 bytes / bytearray 相互转换
    • 1.string 经过编码 encode 转化成 bytes
    • 2.bytes 经过解码 decode 转化成 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

四.猜你喜欢

  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 浅拷贝和深拷贝

未经允许不得转载:猿说编程 » Python bytearray/bytes/string 区别

Python bytearray/bytes/string区别 - Python零基础入门教程相关推荐

  1. Python bytearray/bytes/string区别

    目录 一.字节与字符的区别 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怎么输出浮点数_python 零基础入门教程第 2 章:基本数据类型 (一)

    一.什么是数据类型 编程语言通过一些复杂的计算机物理底层机制,创造不同类型的数据,用来表示现实世界中的不同信息,以便于计算机更好的存储和计算. 每种编程语言都会有一些基本的数据类型用来表示现实世界中的 ...

  4. 视频教程-Python零基础入门教程-Python

    Python零基础入门教程 从2012年从事互联网至今有7年软件编程经验,曾任职国内北京互联网公司,中南林业大学授课Python 现任逻辑教育Python课程负责人,精通Python语言,精通人工智能 ...

  5. Python零基础入门教程( 快速入门)

    前言 学无止境,无止境学. 今天要给大家分享的是<Python零基础入门教程01 快速入门>,这是一个系列的教程,从零基础到项目实战.在本教程中,我会给大家介绍Python入门的一些基础知 ...

  6. 视频教程-ARDUINO零基础入门教程【代码编程篇】-Arduino

    ARDUINO零基础入门教程[代码编程篇] 精通各种单片机编程,有十年以上ARDUINO,51单片机/STM32/PIC/AVR编程,硬件设计,绘图,编程经验.熟悉各种常用传感器使用和物联网通讯 赵勇 ...

  7. C语言 const 修饰函数参数 - C语言零基础入门教程

    C语言 const 修饰函数参数 - C语言零基础入门教程 目录 一.const 简介 1.const 修饰变量 2.const 修饰指针 3.const 修饰在函数名前面 4.const 修饰在函数 ...

  8. SEO零基础入门教程(外链的发布和软文编写)

    seo的作用是众所周知的,对网站进行seo优化,可以给网站带来大量的搜索引擎流量.但是想要做好网站优化也有难度,尤其是对于seo新手来说,因为缺乏理论和实战,所以seo新手需要多加练习.那么具体seo ...

  9. 九宫怎么排列和使用_剪映零基础入门教程第三十七篇:一学就会系列之九宫格小程序配音...

    很多玩儿抖音的朋友都看过九宫格视频,但是并不是每个玩抖音的人都会制作这个九宫格视频,实际这个需要借助小工具来帮忙,而常用抖音的朋友们会对剪映更加熟悉一些,且九宫格视频在剪映内的制作方式则比较简单.那么 ...

最新文章

  1. python opencv单通道转多通道_13、OpenCV绘图和文本显示
  2. 大厂面试篇:五轮面试,阿里offer到手!
  3. 4月份不良与垃圾信息举报:垃圾邮件占37.4%
  4. ProtoBuf在使用protoc进行编译时提示: Required fields are not allowed in proto3
  5. java大数据开发是做什么的_Java转型大数据开发教材,技能储备都在这儿!
  6. C51_按键按下,流水灯亮起,数码管显示按下的次数
  7. 示范NTFS 卷上的硬链接
  8. C语言 strlen 函数 - C语言零基础入门教程
  9. 技术沙龙之液晶监视器和显示器
  10. java window的对象方法,[Java教程]如何真正重写window对象的方法_星空网
  11. 《Adobe Flash Professional CC经典教程》——1.15 复习
  12. 微信APP支付(基于Java实现微信APP支付)
  13. input组件android,React-Native TextInput组件详解及实例代码
  14. html表头跟随滚动,JS实现table表格固定表头且表头随横向滚动而滚动_心善_前端开发者...
  15. c51语言语句 指令集,MCU
  16. matlab画交通标志,基于MATLAB的交通标志设计方法研究
  17. PCL visualizer
  18. 瓦尔德-沃尔福威茨检验
  19. 三维激光扫描后处理软件_甘肃靠谱的激光三维扫描仪_天原地信商贸
  20. word2016标题序号变黑色竖线解决方法

热门文章

  1. WPF自定义控件的三种方式
  2. 当设计模式遇上 Hooks
  3. MaxCompute作业日常监控与运维实践
  4. 作为后端开发如何设计数据库系列文章(一)设计传统系统表结构
  5. Serverless 落地挑战与蚂蚁金服实践
  6. 阿里开发者招聘节 | 面试题02-04:给定一个二叉搜索树(BST),找到树中第K小的节点
  7. 横跨2017-2018,云效Work Like Alibaba系列直播第五期盛大开启
  8. 物联网避坑 3 大指南!
  9. 5G基站功耗,到底有多大?
  10. Spring精华问答 | Spring Bean的自动装配是怎么回事?