文档章节

内置函数:bytes、bytearray、memoryview

o
 osc_ogi0qclx
发布于 2019/08/25 11:09
字数 710
阅读 12
收藏 0

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

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
艾克你好
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
易被忽略的Python内置类型

Python中的内置类型是我们开发中最常见的,很多人都能熟练的使用它们。 然而有一些内置类型确实不那么常见的,或者说往往会被我们忽略,所以这次的主题就是带领大家重新认识这些“不同寻常”...

osc_wa6zijqd
2019/01/10
3
0
文本和字节序列

1 字符问题 “字符串”是个相当简单的概念:一个字符串是一个字符序列。问题出在“字符”的定义上。 在 2015 年,“字符”的最佳定义是 Unicode 字符。因此,从 Python 3 的str 对象中获取的...

osc_9gm4ypss
2019/09/27
3
0
Python3 内置函数

注意:有些函数与 Python2.x 变化不大,会直接跳转到 Python2.x 教程下的内置函数说明,大家要注意下哈。 内置函数 abs() dict() help() min() setattr() all() dir() hex() next() slice()...

村长大神
2018/06/13
0
0
Python3标准库解读——内建类型(下)

2.7 文本序列类型——str Python中的文本数据都视作str类型对象,即字符串。如2.6所述,字符串是采用Unicode编码的immutable序列。在Python中,字符串可以用但引号表示(如'abc'),也可以用...

Aomo
2016/12/24
189
0
老男孩学习---python课程Day04

内置函数 abs()

Oo熊小猫oO
2016/06/02
50
0

没有更多内容

加载失败,请刷新页面

加载更多

263. Ugly Number

题目: 263. Ugly Number 题目地址:https://leetcode.com/problems/ugly-number/ Write a program to check whether a given number is an ugly number. Ugly numbers are positive numbers......

JiaMing
15分钟前
34
0
HCIA_ARP01

ARP(地址解析协议) eNSP 常用路由器:AR2220 常用交换机:S5700、S3700 常用终端:PC、MCS(主播服务器) 设备连线:Copper(以太网用到的双绞线)、Serial(串口线,2SA接口)、Auto(自动连...

创业789
18分钟前
13
0
如何在Rails 4中使用问题 - How to use concerns in Rails 4

问题: The default Rails 4 project generator now creates the directory "concerns" under controllers and models. 默认的Rails 4项目生成器现在在控制器和模型下创建目录“Concer”。 ......

fyin1314
23分钟前
19
0
【LeetCode】 57 括号生成

题目: 解题思路: https://leetcode-cn.com/problems/generate-parentheses/solution/hui-su-suan-fa-by-liweiwei1419/ 代码: import java.util.ArrayList;import java.util.List;publ......

JaneRoad
昨天
8
0
度小满上线“推有钱”贷款推广平台,合伙人直推佣金为贷款金额的2.5%

来源 | 镭射财经 作者 | 黄老邪 2020年,蓬勃发展的消金行业受到新冠肺炎疫情的冲击,用户增长放缓、逾期率上升成为共性问题。但疫情或许只是导火索,对于消金行业来说,用户增长红利的消退,...

镭射财经
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部