Python bytes类型详解

什么是bytes?

byte,也称为字节,是计算机唯一可以存储的东西。也就是说,你想要在计算机中存储任何东西,都需要对其进行编码,将其转换为字节。例如:

  • 存储音乐,必须先使用MP3、WAV等方式对其编码。
  • 存储图片,必须先使JPG、JPEG等方式对其编码。
  • 存储文本,必须使用ASCII、UTF-8等方式对其编码。

这里面,MP3、WAV、JPG、JPEG、ASCII、UTF-8等都是编码的类型,每种类型的编码方式不同,所以在解码时也要通过编码时的方式解码。

bytes与string的区别

同理,在Python中,bytes就是:字节序列。它只存储二进制的0和1,人类是无法理解的。

而 string 字符串是字符序列,人类可以理解的,但它无法直接存储在计算机中,必须要对其编码(转换为bytes)。有多种编码方式可以将string转换为bytes,如ASCII、UTF-8、GBK等。举例如下:

i_string='I am a string'.encode('UTF-8')
print(i_string)

输出:b'I am a string'

在这个例子中,Python使用UTF-8的编码方式对变量i_string的值“I am a string”进行了编码,然后存入到了计算机中。

如果我们用print函数打印出i_string的值,Python会将其表示为`b'I am a string'。这并不代表实际存储在计算机中的就是这个值,而是在打印时,Python使用UTF-8解码了它们,所以才能以字符的形式展现出来。但它在字符前添加了“b”这个字符,以标识它是bytes类型。

当然,我们也可以将bytes解码回string,如下:

i_bytes = b'I am a string'.decode('UTF-8')
print(i_bytes)

上面变量i_bytes输出的结果为:I am a string

编码解码是逆运算,计算机在将字符写入到磁盘前进行编码,从磁盘中读取时进行解码

bytes的作用和使用方式

bytes类型是Python3.0以上版本新增的类型。如上文所知,bytes只负责以二进制形式存储数据,至于这些二进制数据代表了什么内容,完全由程序的编码方式决定。

除了存储图片、视频、音乐等文件外,bytes类型的数据也非常适合在互联网上传输,所以一般用于网络通信。

在Python中,bytes和string类型关系最为紧密,你可以将字符串转换为bytes对象,你可以使用以下两种方式:

#通过构造函数方式创建 bytes 变量
b1 = bytes()#无参数创建空的bytes
b2 = bytes('Python技术站',encoding='UTF-8')#指定UTF-8字符编码方式,转换为bytes
print(b1)
print(b2)

#通过字符形式创建 bytes 变量
bs1 = b''
bs2 = b'http://pythonjishu.com'
print(bs1)
print(bs2)

输出:

b''
b'Python\xe6\x8a\x80\xe6\x9c\xaf\xe7\xab\x99'
b''
b'http://pythonjishu.com'

从运行结果可以发现,变量b2的输出结果并没有原样输出,而是输出了十六进制形式的字符编码值,这是因为Python将bytes转换为字符时,是按照单个字节处理数据的,而非ASCII字符(例子中的中文)一般占用两个以上的字节,Python无法一次性处理,所以会以十六进制形式输出。

对于非ASCII字符,bytes有一个decode()方法,通过该方法可以将bytes对象重新转换成字符串。例如上面的b2变量:

b2.decode('UTF-8')

输出结果:

'Python技术站'

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python bytes类型详解 - Python技术站

(2)
上一篇 2022年11月28日 下午8:00
下一篇 2022年12月18日

相关文章

  • python代码实现逻辑回归logistic原理

    Python代码实现逻辑回归(Logistic回归)原理 概述 Logistic回归是一种二元分类算法,常用于预测用户在某项活动中是否会产生某种行为。它的名字源于其使用的sigmoid函数,该函数可以将任何实数映射到0到1之间的值,因此非常适合概率估计。 本篇攻略将详细讲解如何使用Python实现Logistic回归,包括数据处理、模型训练、参数调整等过程。…

    python 2023年5月19日
    00
  • python基于BeautifulSoup实现抓取网页指定内容的方法

    Python基于BeautifulSoup实现抓取网页指定内容的方法 Python是一种强大的编程语言,可以用于各种任务,包括网页抓取。在本文中,我们将介绍如何使用Python和BeautifulSoup库实现抓取网页指定内容的方法。我们将提供两个示例,演示如何获取网页标题和网页正文。 安装BeautifulSoup库 在使用BeautifulSoup库之前…

    python 2023年5月15日
    00
  • Python 遍历循环详细

    Python遍历循环详细攻略 在Python中,遍历循环是一种常用的循环方式。它允许我们逐个访问序列中的每个元素,并对其进行处理。本文将带你了解Python中常用的遍历循环方式,包括for循环和while循环。 for循环 for循环是Python中最常用的循环方式,它可以遍历任何序列类型,如列表、元组、字符串、字典等。 遍历列表 下面是一个遍历列表的示例代…

    python 2023年5月13日
    00
  • Python爬取爱奇艺电影信息代码实例

    本文将介绍如何使用Python爬取爱奇艺电影信息的方法。以下是本文将介绍的: 使用requests库发送HTTP请求 使用BeautifulSoup库解析页面内容 爬取爱奇艺电影信息 示例说明 使用requests库发送HTTP请求 在Python中,我们可以使用requests库发送HTTP请求。以下是使用requests库发送HTTP请求的示例代码: i…

    python 2023年5月14日
    00
  • Python 数据结构之树的概念详解

    Python数据结构之树的概念详解 简介 树是一种基础的数据结构,它的非线性组织结构可以满足种类繁多的应用需求。在计算机科学中,树的使用非常广泛,如文件系统、数据库索引等。本文主要讲解树的概念、属性、遍历和常见应用等内容。 树的概念和属性 树是由若干节点组成的层次结构,具有以下几个属性: 根节点:树的顶层节点。 叶节点:没有子节点的节点。 子树:一个节点和它…

    python 2023年5月14日
    00
  • python使用beautifulsoup从爱奇艺网抓取视频播放

    Python使用BeautifulSoup从爱奇艺网抓取视频播放 在本文中,我们将介绍如何使用Python和BeautifulSoup库从爱奇艺网抓取视频播放。我们将提供两个示例,演示如何获取视频标题和视频播放链接。 安装BeautifulSoup库 在使用BeautifulSoup库之前,我们需要先安装它。可以使用pip命令来安装BeautifulSoup…

    python 2023年5月15日
    00
  • Python 制作糗事百科爬虫实例

    下面就来详细讲解一下“Python 制作糗事百科爬虫实例”的完整攻略: 1. 爬虫概述 爬虫(Web Crawler)是指互联网上按照一定规则自动抓取网页信息的程序。其核心功能是自动抓取网页,将需要的有用信息提取出来并进行分析处理。 2. 工具准备 Python 3.x(开发语言) requests(网络请求库) BeautifulSoup(HTML 解析器…

    python 2023年6月6日
    00
  • Python要求O(n)复杂度求无序列表中第K的大元素实例

    要求O(n)复杂度求无序列表中第K的大元素,可以使用类似于快速排序的思想,即利用分治的方法来对列表进行划分。具体流程如下: 首先选择列表中的一个元素作为基准值,将列表分为两部分,一部分是小于基准值的元素,另一部分是大于等于基准值的元素。 通过比较基准值的位置与K的大小关系,就可以判断第K大元素位于哪一部分中。如果基准值位于列表的前K个元素中,那么第K大元素位…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部