首页 > 编程语言 >Python数据类型中bytes 与 bytearray

Python数据类型中bytes 与 bytearray

时间:2024-02-22 16:11:42浏览次数:37  
标签:bytearray ba 示例 Python 数据类型 bytes 对象 hello

在Python中,我们可以使用bytes和bytearray两种数据类型来处理二进制数据。bytes是一个不可变的序列类型,而bytearray是一个可变的序列类型。本文将介绍如何使用Python来创建、操作和转换bytes和bytearray。

  • bytes:可以看作是一组二进制数值(0-255) 的 str 序列

  • bytearray :可以看作是一组二进制数值(0-255) 的 list 序列

创建bytes和bytearray对象

首先,我们需要创建一个bytes或bytearray对象来存储二进制数据。下表展示了创建bytes和bytearray对象的几种方式:

步骤 描述 代码示例
1 使用字符串创建bytes对象 b = b'hello'
2 使用字节数组创建bytearray对象 ba = bytearray([104, 101, 108, 108, 111])
3 使用字符串的encode方法创建bytes对象 b = 'hello'.encode()
4 使用bytes对象的decode方法创建字符串 s = b.decode()

操作bytes和bytearray

接下来,我们将介绍如何操作bytes和bytearray对象。

访问元素
bytes和bytearray对象都可以通过索引来访问其中的元素。注意,它们的索引是从0开始的。下面是一些示例代码:

b = b'hello'
print(b[0]) # 输出: 104

切片操作
我们可以使用切片操作来获取bytes和bytearray对象的子序列。切片操作返回一个新的bytes或bytearray对象。下面是一些示例代码:

b = b'hello'
print(b[1:4]) # 输出: b'ell'

修改字节值
由于bytes对象是不可变的,所以我们无法直接修改其中的字节值。但是,bytearray对象是可变的,我们可以通过索引来修改字节值。下面是一个示例代码:

ba = bytearray(b'hello')
ba[0] = 106
print(ba) # 输出: bytearray(b'jello')

拼接操作
我们可以使用加号运算符来拼接bytes和bytearray对象。注意,拼接操作将返回一个新的bytes或bytearray对象。下面是一些示例代码:

b1 = b'hello'
b2 = b'world'
b3 = b1 + b2
print(b3) # 输出: b'helloworld'

转换bytes和bytearray
有时候,我们需要在bytes和bytearray之间相互转换。下面是一些示例代码:

b = b'hello'
ba = bytearray(b)
print(ba) # 输出: bytearray(b'hello')
#学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441

ba = bytearray(b'hello')
b = bytes(ba)
print(b) # 输出: b'hello'

结论

在本文中,我们学习了如何使用Python来创建、操作和转换bytes和bytearray对象。

我们首先介绍了创建对象的几种方式,然后讨论了如何访问元素、使用切片操作、修改字节值和拼接操作。

最后,我们学习了如何在bytes和bytearray之间相互转换。通过掌握这些知识,你将能够有效地处理二进制数据。

标签:bytearray,ba,示例,Python,数据类型,bytes,对象,hello
From: https://www.cnblogs.com/djdjdj123/p/18027579

相关文章

  • 如何在python中判断一个字符串是否可以转换为数字
    方法一:isdigit()不可识别汉字小数类型str1='1'str2='2.1'str3='三'str4='3.3.3.3'print(str1.isdigit())print(str2.isdigit())print(str3.isdigit())print(str4.isdigit())结果:TrueFalseFalseFalse方法二:isdecim......
  • python包管理利器poetry和conda使用简介
     #基本信息 conda相对于主流的虚拟环境管理工具,在python开发环境中最大的特点便是“不需要安装python”。但这并不意味着conda不需要python来运行脚本,而是conda不会依赖于系统中已经存在的python进行运行。因此conda拥有较高的独立性以及强悍的跨版本支持......
  • python—unittest—数据驱动ddt
    ddt(datadrivertest)1.介绍ddt其实就是一个装饰器,它会根据你传递进来的数据来决定要生成几个测试用例2.安装pipinstallddt3.使用@ddt:装饰测试类(把具体的类名传递给ddt,告诉ddt这个测试用例要使用数据驱动)@data:装饰测试用例(把测试数据作为一个参数传递给测试用例)@uppac......
  • Python下载安装教程
    1.下载地址官方下载地址:https://www.python.org/downloads/国内镜像地址:https://mirrors.huaweicloud.com/python/,win选择好版本后,不论是Intel还是AMD处理器,都下载amd64.exe版本的安装包;2.安装双击执行.exe文件,勾选添加环境变量选择安装目录:3.检测cmd输入python命令,出现......
  • python写数据到kingbase
     操作kingbase与操作pg一样,需要psycopg2这个包#!/usr/bin/envpython#coding=utf-8importos,json,urllib,datetime,shutilimportpsycopg2importtracebackimporttime##createtabletb_test##(##idbigserialprimarykeynotnull,##name1varchar(32),##n......
  • python 图片转文字小工具
    应群友要求,要做一个图片转文字的格式,因为有些人的简历中只有一张图片要提取他里面的文字就不好办了。于是就有了下面这个小工具:功能:选择要识别的图片后,识别出来后存到.txt文本中。实现原理,基于百度“文字识别”通用版的api接口调用。有一点需要说明的是可能无法识别百分百准确......
  • 基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的玉米病虫害检测系统(Python+PySide6界面+训练代码)
    摘要:本文介绍了一种基于深度学习的玉米病虫害检测系统系统的代码,采用最先进的YOLOv8算法并对比YOLOv7、YOLOv6、YOLOv5等算法的结果·,能够准确识别图像、视频、实时视频流以及批量文件中的玉米病虫害。文章详细解释了YOLOv8算法的原理,并提供了相应的Python实现代码、训练数据集,以......
  • Python:Lambda
    Lambda>>>(lambda:3)()#Usingalambdaexpressionasanoperatorinacallexp.经过查阅资料,理解了这个表达式要做的事情:(lambda:3)()是一个Lambda表达式的调用,它表示创建了一个匿名函数(Lambda函数),该函数不接受任何参数,而在执行时返回值为3。(lambda:3):这......
  • python中常见的异常 error
    python中常见的异常在python2中可以通过一个模块来查看所有的内置异常,而在python3中就无法查看。>>>importexceptions>>>dir(exceptions)['ArithmeticError','AssertionError','AttributeError','BaseException','BufferError',&#......
  • Python Web 开源框架排行榜
    截止到2024年2月22日,对GithubStar>900的PythonWeb开源框架,按照Star数量,从高到低排序,具体排名如下:1.DjangoDjangoisahigh-levelPythonwebframeworkthatencouragesrapiddevelopmentandclean,pragmaticdesign.About: TheWebframeworkforperfec......