python 杂记(二)


字符串有两种格式,一个是字节字符串,一个是Unicode字符串。

字节字符串

在字节字符串(在Python中由bytes对象表示)中,每个字符仅代表一个字节,因此很容易与文件或外界的其他接口进行交互。
标准字符串仅用一对单引号标识为文字(如example),而字节字符串要求在第一个单引号前包含b。
标准字符串

print('你好')

字节字符串·

print(b'12')
>b'12'

字节字符串中的字符只能是ACSII表中的字符。
输出时会将b带上。

借助chr()和ord进行转化

ord()函数,将返回与之等效的数字 ,只能是单个字符

>>>ord(b'A')
>65]
#也可以迭代字节序列
>>>list(b'Example')
>[69,120,97,109,112,108,101]

,chr()会根据转入的整数值返回单个字符,返回的只是常规的字符串。

>>>chr(65)
>A
#迭代转化
>>>[chr(o) for o in [69,120,97,109,112,108,101]]
['E','x','a','m','p','l','e']

借助struct 模块进行复杂的转化

import struct
>>>struct.pack(b'B',65)
b'A'

B指定了一个无符号的数值,因此不能是负数。范围0~255

import struct
>>>struct.pack(b'b',65)
b'A'

b指定一个有符号的字节,范围-128~127。

双字节

import struct
>>>struct.pack(b'Hh',65,65)
b'A\x00A\x00'

指定字节顺序
大端序:b'>H'
小端序:b'<H'
默认小端序

>>>print(struct.pack(b'>H',65))
>b'\x00A'

一次性打包和解包多个值

import struct
first_name = 'MARY'
last_name = 'Alsh'
age = 28

data = struct.pack(b'10s10sB',bytes(first_name,'utf8'),bytes(last_name,'utf8'),age)
print(data)

s格式化代码结合数字前缀,可以表示读取或写入的字符串大小

Unicode字符串

转化为字节编码

编码过程本身是使用字符串的encode()方法进行管理的。只需要传入编码的
名称, encode()方法就会返回一个字节字符串,以表示给定编码中的文本。(当然这些字符都应该是ASCII表中的。

str ='This is a example'.encode()
#str ='This is a example'.encode('ascii')
#str ='This is a example'.encode('ASCII')
print(str)
>b'This is a example'

转化为UTF-8编码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落春只在无意间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值