本文摘自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实现在同一网络中的本地文件共享方法
Python是一种什么类型的编程语言
Python开发学习包括哪些内容
怎么下载官网Python并安装
java与Python中单例模式的区别
Python笔试题之设计“跳一跳”小游戏计分器
Python字典可以排序吗
使用Python进行手机号和数字的随机生成方法
Python中元类与枚举类的介绍(代码示例)
Python设置环境变量有什么用?
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » python string、 bytes、 bytearray类型详解