Python3内置函数汇总

目录

Python3 bytearray() 函数详解 将参数转为可变的字节数组

bytearray()函数的主要用途是将参数转换为一个新的字节数组,它是一个可变的整数序列,它的取值范围是0 <= x < 256(0~255),它具有可变序列的大多数方法。
它是Python的内置函数,在python文件中直接可以使用。

bytearray

语法

bytearray([source[, encoding[, errors]]])

参数

source(必选) - 源对象(可被转换的值),接下来会对source的几种情况进行详解。
encoding(可选) - 虽然它是可选的,但是如果source为字符串时,它是必选的,需要指定字符串的编码格式。
errors(可选) - 这个参数一般不需要设置,默认是'strict(严格)'。还有其他选项,比如'ignore(忽略)'等等。

§ source参数的几种情况详解
  1. 如果参数是一个字符串,你必须设置encoding参数来指定的它的编码格式,比较常用的有'utf8'、'gbk'等;
  2. 如果参数是一个整数,将会按照整数的数值,使用对应数量的空字节(\x00)来表示。比如参数为5,那么返回的结果则是b'\x00\x00\x00\x00\x00'
  3. 如果参数为与buffer接口一致的对象,则从一个字节序列或者buffer复制出一个可变的bytearray对象;
  4. 如果参数是可迭代的,则它的每一个值都必须是0~255的整数(不允许是字符串或者其他值),它们将被用作数组的初始化值;
  5. 如果参数未设置或者为0,则会创建一个大小为0的数组;如果为''(空)的话会报错的;

返回值

返回一个可变的字节数组。

常用方法

这里列举了一些比较常用的方法。

方法说明
clear()清空
append(n)追加一个字节(n为0~255的整数)
remove(value)删除第一个出现的字节,如果没有则产生ValueError错误
reverse()字节顺序进行反转
decode(encoding='utf-8')转为字符串
find(sub[, start[, end]])查找子字节串

实例

§ 实例1 - 参数为字符串

不设置encoding(字符编码)会报错的。

代码及运行结果:

>>> bytearray('字节数组', 'utf8')
bytearray(b'\xe5\xad\x97\xe8\x8a\x82\xe6\x95\xb0\xe7\xbb\x84')
§ 实例2 - 参数为整数,且必须为正数,负数会报错的。

代码及运行结果:

>>> bytearray(8)
bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00')
§ 实例3 - 参数为可迭代的

常用可迭代的有:列表(list),元组(tuple),range()方法以及for循环。

代码及运行结果:

>>> bytearray([1,2,3,4,5])            #列表(list)
bytearray(b'\x01\x02\x03\x04\x05')
>>> bytearray((1,2,3,4,5))            #元组(tuple)
bytearray(b'\x01\x02\x03\x04\x05')
>>> bytearray(range(1,6))             #range()方法
bytearray(b'\x01\x02\x03\x04\x05')
>>> bytearray(i for i in range(1,6))  #for循环
bytearray(b'\x01\x02\x03\x04\x05')
§ 实例4 - 参数为不设置或0

代码及运行结果:

>>> bytearray()   #不设置参数
bytearray(b'')
>>> bytearray(0)  #参数为0
bytearray(b'')
§ 实例5 - 常用方法 - clear()
#先声明一个字节数组并赋值给对象o
>>> o = bytearray(8)
>>> o
bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00')
#进行清空
>>> o.clear()
>>> o
bytearray(b'')
§ 实例6 - 常用方法 - append()
#先声明一个字节数组并赋值给对象o
>>> o = bytearray(8)
>>> o
bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00')
#在最后追加了一个数字2
>>> o.append(2)
>>> o
bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x02')
§ 实例7 - 常用方法 - remove()
#先声明一个字节数组并赋值给对象o
>>> o = bytearray([1,2,3,4,5])
>>> o
bytearray(b'\x01\x02\x03\x04\x05')
#删除数字3
>>> o.remove(3)
>>> o
bytearray(b'\x01\x02\x04\x05')
§ 实例8 - 常用方法 - reverse()
#先声明一个字节数组并赋值给对象o
>>> o = bytearray([1,2,3,4,5])
>>> o
bytearray(b'\x01\x02\x03\x04\x05')
#反转顺序
>>> o.reverse()
>>> o
bytearray(b'\x05\x04\x03\x02\x01')
§ 实例9 - 常用方法 - decode()
#先声明一个字节数组并赋值给对象o
>>> o = bytearray('字节数组', 'utf-8')
>>> o
bytearray(b'\xe5\xad\x97\xe8\x8a\x82\xe6\x95\xb0\xe7\xbb\x84')
#默认是utf-8编码格式,需要其他格式需指定encoding参数
>>> o.decode()
'字节数组'
§ 实例10 - 常用方法 - find()
#先声明一个字节数组并赋值给对象o
>>> o = bytearray([1,2,3,4,5])
>>> o
bytearray(b'\x01\x02\x03\x04\x05')
#查找数字3,返回其所在位置的下标。
>>> o.find(3)
2
>>>

如果有任何建议或意见,欢迎交流沟通

作者:张恺阳

本文链接:https://www.zky.name/article/13.html

来源:张恺阳博客