python bytes是什么类型,python中的字节串类型(bytes)

08e7a11ec028a67c8607548dac9e237c.png

A.基本概念

1.字节串性质

>常量(不)可变对象

>有序对象

2.字节串元素

>字节串bytes、字节数组bytearray是二进制数据组成的序列,其中每个

元素由8bit二进制(同1byte,同2位16进制数,同0~255)组成。

·字节串的具体元素是将该字符串编码为字节串的规则所决定的

* ascii :元素为一个十进制整数

* gb2312 :元素为十六进制整数

* utf-8 :元素为一个十进制整数或十六进制整数

3.字节串存储

>以字节存储(byte),当显示时以字节形式的十进制或十六进制显示

4.字节分可变字符串和不可变字符串

B.字节串的定义

1.由字符串派生成(不可变字节串)

>b-string 适用字符串都是ASCII字符

>string.encode(编码方式) 适用任意字符串

2.由bytes()的返回值生成(不可变字节串)

3.由bytearray()的返回值生成(可变字节串/字节数组)

C.字节串的方法

1.访问

>索引(见序列)

2.切割

>按符切割

功能:将字节串bytes按分割符分开为几个子字节串,x为切割次数,默

认全切。返回一个分割后的子串组成的列表

函数:bytes.split(分割符[,x]) 左切割

函数:bytes.rsplit(分割符[,x]) 右切割

>按行切割

函数:splitlines([keepends])

功能:将字节节串bytes按行(b\r--b\r\n--b\n)分隔返回一个由各行

组成列表.参数Keepends为False,不含换行符(默认),为 True,

保留换行符

3.拼接

>字节串直接拼接

语法:使用+直接拼接字节串

>去除特殊字符

函数:bytes.strip()、rstrip()、lstrip()

功能:删除字节串前后/前/后的特殊字符。

说明:特殊字节指制表符(b\t)、回车符(b\r)、换行符(b\n)空格

4.替换

>按串替换

函数:bytes.replace(字节串1,字节串2 [,整型数x])

功能:其中字节串1为bytes字节串的子串,将bytes字节串的字节串

1替换为字节串2(x为将串1换为串2的个数 默认是全换),并

返回结果,bytes字节串本身不变。

>按字符列表替换

函数:bytes.maketrans(bytes1,bytes2)+bytes.translate(table)

功能:maketrans填入两等长字节串,用bytes1(键)和bytes2(键值)每

一对字节的数值构成字典映射并返回,translate利用maketrans

返回值得到字节替换表table替换字节串中相关字节并返回一个

字节串副本

5.填充

>两边填充

函数:bytes.center(width[byte])

功能:返回使用byte填充bytes至长width的新字节串

参数:width--返回字节串的总长度

byte -- 填充字节

注意:使用center方法的字节串不能直接加入换行回车,会影响格式,

应把换行回车加在center的返回值上

>左/右填充

函数:bytes.r/ljust(width[byte])

功能:返回长度width的右/左对齐字节串,不够时补byte(默认b空格)

6.解码

>将bytes/bytearray解码为str

函数:bytes[array].decode([decoding="utf-8"][errors="strict"])

参数

·Encoding指定解码方式

·errors指定错误处理方式

* strict:遇到非法字符就抛出异常。

* ignore:忽略非法字符。

* replace:用“?”替换非法字符。

* xmlcharrefreplace:使用 xml 的字符引用。

说明:纯英文bytes/bytearray可以‘ascii’解码为str

含中文bytes/byte可以用’utf-8’/’gb2312’/gbk解码为str

7.判断(返回布尔值)

>bytes.isascii 判断bytes是否全为ASCII中的字符(0-127)

>bytes.isalnum() 判断bytes是否全为a-zA-Z0-9中的字符

>bytes.isalpha() 判断bytes是否全为字母

>bytes.isspace() 判断bytes是否全为空格

>bytes.islower/isuper() 判断bytes整体是否全小/大写

>bytes.istitle() 判断str是否符合首字母大写其它小写的规则

>bytes.startswith/endswith(sub[,start[,end]])

参数: bytes->母串 sub->要匹配/索引的子串

start->从此索引开始操作(默认为0)

end->到此索引结束操作(默认为-1,即结尾)

功能:bytes是否以sub开头/结尾,返回布尔值

>a (not)in bytes 判断对象a是否为bytes中的一个子串

8.查找

>count、find、index的参数

bytes->母串 sub->要匹配/索引的子串

start->从此索引开始操作(默认为0)

end->到此索引结束操作(默认为-1,即结尾)

>统计子串个数

函数:bytes.count(sub[start,end])

功能:返回sub在bytes中出现次数,若不存在,返回 0

>寻找子串

函数:bytes.find(sub[start,end]) bytes.r/index(sub[start,end])

功能:sub在bytes中是否出现,若出现返回第一次出现的索引,若不出

现,返回 -1

注意

·index和find完全相同不过当无索引时会抛出异常

·加了r表示从右边开始扫描

举报/反馈

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值