python string、 bytes、 bytearray类型详解


本文摘自php中文网,作者小云云,侵删。

python3对文本和二进制数据做了区分。文本是Unicode编码,str类型,用于显示。二进制类型是bytes类型,用于存储和传输。bytes是byte的序列,而str是unicode的序列。本文主要介绍了python string类型 bytes类型 bytearray类型,需要的朋友可以参考下,希望能帮助到大家。

一、str类型:

1

2

3

4

5

>>> s = u'你好'

>>> s

'你好'

>>> type(s)

<class 'str'>

bytes类型:

1

2

3

4

5

>>> b = b'abc'

>>> b

b'abc'

>>> type(b)

<class 'bytes'>

二、str和bytes之间的转换关系:str-->encode()-->bytes-->decode()-->str

转换方式一:encode(),decode()

1

2

3

4

5

6

7

8

9

10

11

>>> a = u'你好'

>>> b = a.encode('utf-8')

>>> b

b'\xe4\xbd\xa0\xe5\xa5\xbd'

>>> type(b)

<class 'bytes'>

>>> new_a = b.decode('utf-8')

>>> new_a

'你好'

>>> type(new_a)

<class 'str'>

转换方式二:bytes(),str()

1

2

3

4

5

6

7

8

9

10

11

>>> a = u'你好'

>>> b= bytes(a, encoding='utf-8')

>>> b

b'\xe4\xbd\xa0\xe5\xa5\xbd'

>>> type(b)

<class 'bytes'>

>>> new_a = str(b, encoding='utf-8')

>>> new_a

'你好'

>>> type(new_a)

<class 'str'>

三、bytearray类型

bytearray类是range 0 < = x < 256的一个可变序列。

可选的源参数可以用几种不同的方式来初始化数组:

?如果它是一个字符串,那么您还必须给出编码(以及可选的错误)参数;bytearray()然后使用str.encode()将字符串转换为字节。
?如果它是一个整数,那么数组将具有这个大小,并将用null字节初始化。
?如果它是符合缓冲区接口的对象,则将使用对象的只读缓冲区来初始化字节数组。
?如果它是可迭代的,那么它必须是range 0 < = x < 256的整数的迭代,它被用作数组的初始内容
?如果没有参数,则创建一个大小为0的数组。

当源参数是一个字符串时:

1

2

3

4

5

>>> b = bytearray(u'你好', encoding='utf-8')

>>> b

bytearray(b'\xe4\xbd\xa0\xe5\xa5\xbd')

>>> type(b)

<class 'bytearray'>

当源参数是一个整数时:

1

2

3

4

5

>>> b = bytearray(5)

>>> b

bytearray(b'\x00\x00\x00\x00\x00')

>>> type(b)

<class 'bytearray'>

阅读剩余部分

相关阅读 >>

如何安装Python

从此驾驭图表的神器matplotlib,Python强大的作图工具

记录一次简单的Python爬虫实例

Python中迭代器生成器的实例详解

Python中func什么意思

Python取余运算符是什么

Python什么时候出来的

Python字典的操作总结(附示例)

爬虫Python能做什么?

Python怎么删除字符

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...