内置函数:bytes、bytearray、memoryview

bytes:字节组成的有序不可变序列bytearray:在phthon3当中新增的bytearray为字节组成的可变序列,修改字节不会生成新的序列字符串以字符为单位,转换成bytes类型以字节为单位,两者并无区别,本质都是编译成计算机可以读懂的01010101字节码两者参数一样:
  • 如果 source 为整数,则返回一个长度为 source 的初始化数组;
  • 如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;
  • 如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;
  • 如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。
  • 如果没有输入任何参数,默认就是初始化数组为0个元素。
创建:
name = bytes(‘aike‘,encoding=‘utf-8‘) #通过关键字创建
name1 = b‘aike‘ #直接指定字符串为bytes类型
print(name)
print(name1)
print(b‘‘)#参数为空,初始化数组为0个元素。
print(bytes([1,2,3,485]))#报错 如果传入的参数为可迭代类型,必须为0-256之间的整数


a = [1,2,3,4,5,25]
print(bytearray(a))

a = [1,2,3,4,5,257]
print(bytearray(a))#报错 如果传入的参数为可迭代类型,必须为0-256之间的整数

print(bytearray(21))
print(bytearray(‘aike‘,encoding=‘utf-8‘))#转换成utf-8编码格式的bytearray类型
print(bytearray(‘艾克‘,encoding=‘utf-8‘))
print(bytearray())#参数为空,初始化数组为0个元素。
decode:将bytes格式的字符串解码成字符串格式,是什么编码的bytes类型,就要用什么编码进行解码,否则会报错或者乱码,默认为utf-8。
s = bytes(‘艾克‘,encoding=‘gbk‘)
b = s.decode(‘gbk‘)
print(s)
print(b)
encode:将字符串转换成指定编码的bytes类型,是什么编码的bytes类型,就要用什么编码进行解码,否则会报错或者乱码,默认为utf-8。
s1 = ‘艾克‘
s2 = s1.encode(‘gbk‘)
s3 = s2.decode(‘gbk‘)
print(s2,s3)
memoryview:
如果要用memoryview去引用一个object, 那么这个object必须支持buffer protocol,python中原生(built-in)支持buffer protocol的obj有bytes和bytearray。所以使用它需要先把参数转换成bytes类型的字节码形式,一般的序列进行切片是直接切出来存在新的内存,而memoryview切出来的是缓存,不占用新的内存。但只有支持buffer protocol(缓存协议)的数据类型才支持使用,所以表现形式是字节码,需要表现成字符串形式需要进行解码,但解码后同样新占内存
s = bytes(‘艾克你好‘,encoding=‘utf-8‘)
a = memoryview(s)
print(len(a))#字节长度
print(a[0])
print(a[1])
print(a[2])
print(bytes(a[0:]).decode(‘utf-8‘))#切片后解码

#打印:
12
232
137
190
艾克你好


原文地址:https://www.cnblogs.com/aizhinong/p/11407256.html

时间: 2024-07-31 13:33:34

内置函数:bytes、bytearray、memoryview的相关文章

Python标准库:内置函数bytes([source[, encoding[, errors]]])

返回一个新的数组对象,这个数组对象不能对数组元素进行修改.每个元素值范围: 0 <= x < 256.bytes函数与bytearray函数主要区别是bytes函数产生的对象的元素不能修改,而bytearray函数产生的对象的元素可以修改.因此,除了可修改的对象函数跟bytearray函数不一样之外,其它使用方法全部是相同的.最后它的参数定义方式也与bytearray函数是一样的. 例子: #bytes()函数 a = bytes('abc', 'utf-8') print(a) b = by

内置函数bytes()

a=b'\x00\[email protected]' print a[3]#99,c的ascii码是99 print a[1]#156 并且byte是无法修改的 c[1]=155 Traceback (most recent call last): File "<pyshell#6>", line 1, in <module> c[1] = 155 TypeError: 'bytes' object does not support item assignme

Python标准库 内置函数bytes source encoding errors

返回一个新的数组对象,这个数组对象不能对数组元素进行修改.每个元素值范围: 0 <= x < 256.bytes函数与bytearray函数主要区别是bytes函数产生的对象的元素不能修改,而bytearray函数产生的对象的元素可以修改.因此,除了可修改的对象函数跟bytearray函数不一样之外,其它使用方法全部是相同的.最后它的参数定义方式也与bytearray函数是一样的. 例子: #bytes()函数 a = bytes('abc', 'utf-8') print(a) b = by

Python内置函数——bytes

英文文档: class bytes([source[, encoding[, errors]]]) Return a new "bytes" object, which is an immutable sequence of integers in the range 0 <= x < 256. bytes is an immutable version of bytearray – it has the same non-mutating methods and the

Python中内置函数的介绍

内置函数的功能介绍 常用内置函数如下: 1.abs() 绝对值 格式:abs(x) 例如:print(abs(-18)) >>> 18 返回值:number #该函数主要用于数值类的操作 2.all() 是否都为真 格式:all(iterable) 例如:print(all([1,2,3,])) >>> Ture 返回值:bool #该函数主要用于可迭代对象的操作,主要为列表.元祖.字典和集合.当这些类型的元素中有空字符串.空列表.空元祖.空字典.空集合时,则返回值为F

python函数(6):内置函数和匿名函数

我们学了这么多关于函数的知识基本都是自己定义自己使用,那么我们之前用的一些函数并不是我们自己定义的比如说print(),len(),type()等等,它们是哪来的呢? 一.内置函数 由python内部定义好我们可以直接调用的函数就叫内部函数.python一共给我们68个内置函数: abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id() object() sorted() as

python函数: 内置函数

forthttp://blog.csdn.net/pipisorry/article/details/44755423 Python内置函数 Python内置(built-in)函数随着python解释器的运行而创建.在Python的程序中,你可以随时调用这些函数,不需要定义. Built-in Functions     abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id(

Python内置函数详解

置顶   内置函数详解 https://docs.python.org/3/library/functions.html?highlight=built#ascii 此文参考了别人整理好的东西(地址:http://www.cnblogs.com/sesshoumaru/p/6140987.html#p1),然后结合自己的理解,写下来,一方面方便自己,让自己好好学习,顺便回忆回忆:另一方面,让喜欢的盆友也参考一下. 经查询,3.6版本总共有68个内置函数,主要分类如下: 数学运算(7个) 类型转换

Python内置函数.md

Python3 内置函数 abs(x) 返回一个数的绝对值.参数可以是一个整数或者一个浮点数.如果参数是一个复数,那么将返回它的模. >>> abs(-123456) 123456 >>> abs(123456) 123456 all(iterable) 当 iterable 中所有元素都为 True 时(或者 iterable 为空),返回 True .相当于: def all(iterable): for element in iterable: if not el

查看python 3中的内置函数列表,以及函数功能描述

1 >>> dir(__builtins__)//查看内置函数(BIF)列表 2 ['ArithmeticError', 'AssertionError', 'AttributeError', 3 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 4 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionE