Python bytes 类型用来表示一个字节串。“字节串“不是编程术语,是我自己“捏造”的一个词,用来和字符串相呼应。

bytes 是 Python 3.x 新增的类型,在 Python 2.x 中是不存在的。

字节串(bytes)和字符串(string)的对比:

字符串由若干个字符组成,以字符为单位进行操作;字节串由若干个字节组成,以字节为单位进行操作。

字节串和字符串除了操作的数据单元不同之外,它们支持的所有方法都基本相同。

字节串和字符串都是不可变序列,不能随意增加和删除数据。

bytes 只负责以字节序列的形式(二进制形式)来存储数据,至于这些数据到底表示什么内容(字符串、数字、图片、音频等),完全由程序的解析方式决定。如果采用合适的字符编码方式(字符集),字节串可以恢复成字符串;反之亦然,字符串也可以转换成字节串。

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

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

字符串和 bytes 存在着千丝万缕的联系,我们可以通过字符串来创建 bytes 对象,或者说将字符串转换成 bytes 对象。有以下三种方法可以达到这个目的:

如果字符串的内容都是 ASCII 字符,那么直接在字符串前面添加b前缀就可以转换成 bytes。

bytes 是一个类,调用它的构造方法,也就是 bytes(),可以将字符串按照指定的字符集转换成 bytes;如果不指定字符集,那么默认采用 UTF-8。

字符串本身有一个 encode() 方法,该方法专门用来将字符串按照指定的字符集转换成对应的字节串;如果不指定字符集,那么默认采用 UTF-8。

【实例】使用不同方式创建 bytes 对象:

#通过构造函数创建空 bytes

b1 = bytes()

#通过空字符串创建空 bytes

b2 = b''

#通过b前缀将字符串转换成 bytes

b3 = b'http://c.biancheng.net/python/'

print("b3: ", b3)

print(b3[3])

print(b3[7:22])

#为 bytes() 方法指定字符集

b4 = bytes('C语言中文网8岁了', encoding='UTF-8')

print("b4: ", b4)

#通过 encode() 方法将字符串转换成 bytes

b5 = "C语言中文网8岁了".encode('UTF-8')

print("b5: ", b5)

运行结果:

b3:  b'http://c.biancheng.net/python/'

112

b'c.biancheng.net'

b4:  b'C\xe8\xaf\xad\xe8\xa8\x80\xe4\xb8\xad\xe6\x96\x87\xe7\xbd\x918\xe5\xb2\x81\xe4\xba\x86'

b5:  b'C\xe8\xaf\xad\xe8\xa8\x80\xe4\xb8\xad\xe6\x96\x87\xe7\xbd\x918\xe5\xb2\x81\xe4\xba\x86'

从运行结果可以发现,对于非 ASCII 字符,print 输出的是它的字符编码值(十六进制形式),而不是字符本身。非 ASCII 字符一般占用两个字节以上的内存,而 bytes 是按照单个字节来处理数据的,所以不能一次处理多个字节。

如果你对进制不了解,请猛击:

#通过 decode() 方法将 bytes 转换成字符串

str1 = b5.decode('UTF-8')

print("str1: ", str1)

输出结果:

str1:  C语言中文网8岁了

c语言字节类型(bytes),Python bytes类型及用法相关推荐

  1. python是什么类型的语言-编程语言分类及python所属类型

    编译型和解释型: 我们先看看编译型,其实它和汇编语言是一样的:也是有一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码.这个过程说得专业一点,就称为编译(Compile),而负责编译的 ...

  2. linux输出变量的类型名称,Python 变量类型

    变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据类型,这些变量可以存储整 ...

  3. 第4章 介绍Python对象类型

    看前须知 这里对本书中提到的不常见的内容进行了查证,举例,所以大家可以不用再费神去搜索相关内容 在Python中,我们运用"材料"来处理"事务". 材料:操作对 ...

  4. Python对象类型

    Python对象类型 Python进阶(二)--Python对象类型 上一章中我们主要讲了Python的安装与Python基本命令行,IDLE的应用.本章中我们将讲述Python的对象类型,包括数字. ...

  5. python bool类型_python打印bool类型-女性时尚流行美容健康娱乐mv-ida网

    女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 python 变量和数据 类型 ...

  6. python bytes是什么类型,python中的字节串类型(bytes)

    A.基本概念 1.字节串性质 >常量(不)可变对象 >有序对象 2.字节串元素 >字节串bytes.字节数组bytearray是二进制数据组成的序列,其中每个 元素由8bit二进制( ...

  7. 字节(bytes) 二进制序列类型

    字节的表示方法 单引号 b'still allows embedded "double" quotes' 双引号: b"still allows embedded 'si ...

  8. Python学习,python3中的bytes和str类型

    Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和b ...

  9. python中bytes_Python3中的bytes和str类型

    Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和b ...

最新文章

  1. CountDownLatch——常用并发工具类
  2. Cocos2d-精灵的几个常识
  3. 区块链BaaS云服务(39)时戳信息Bystack“架构设计”
  4. 基于flink+clickhouse构建亿级电商全端用户画像平台训练营
  5. 边缘生——保研与考研到底如何抉择!
  6. android handle 阻塞,Android全面解析之Handler机制:常见问题汇总
  7. scp复制linux系统的文件文件到本机(windows)以及本机文件复制到远程的命令
  8. 2021-2025年中国制革机械行业市场供需与战略研究报告
  9. 解决fullgc_CMS发生FullGc分析
  10. CF 316G3 Good Substrings——广义后缀自动机
  11. 使用Jsoup实现网络爬虫
  12. 计算机组成:真正理解单周期处理器的“数据通路”
  13. pgm图像修改java_【转】 PGM图像处理方法详解
  14. 树莓派cm4 ioboard配置虚拟网卡、静态ip、dhcp服务
  15. 背光尺寸怎么设计才合理?
  16. 计算机单片机实训报告,计算器单片机实训报告.doc
  17. error LNK1207:-XXX.pdb”中的 PDB 格式不兼容;请删除并重新生成
  18. linux 读取png图片大小,读取 png 图片的宽高信息
  19. 骨龄预测代码学习(一)
  20. 在mini2440上移植使用ffmpeg录像

热门文章

  1. 适合新手练手的三个python简单小游戏
  2. Qt和海康威视混合编程
  3. 【IKAnalyzer中文分词器详解-(1)分词逻辑】
  4. js正则去除头尾的指定符号
  5. 字节跳动 Java 岗一二三面全经过分享
  6. 一个锂电源的恒流充电电路
  7. 台式计算机小键盘,台式电脑软键盘在哪里,初学电脑
  8. 用python怎么读文件_python怎么读文件
  9. VMware多款产品中存在两个严重漏洞,美国国土安全部要求联邦机构5天内修复
  10. HTTPS加密网站,地址重写配置