详解python string类型 bytes类型 bytearray类型


Posted in Python onDecember 16, 2017

 一、python3对文本和二进制数据做了区分。文本是Unicode编码,str类型,用于显示。二进制类型是bytes类型,用于存储和传输。bytes是byte的序列,而str是unicode的序列。

str类型:

>>> s = u'你好'
 >>> s
 '你好'
 >>> type(s)
 <class 'str'>

bytes类型:

>>> b = b'abc'
 >>> b
 b'abc'
 >>> type(b)
 <class 'bytes'>

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

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

>>> 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()

>>> 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的数组。

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

>>> b = bytearray(u'你好', encoding='utf-8')
 >>> b
 bytearray(b'\xe4\xbd\xa0\xe5\xa5\xbd')
 >>> type(b)
 <class 'bytearray'>

当源参数是一个整数时:

>>> b = bytearray(5)
 >>> b
 bytearray(b'\x00\x00\x00\x00\x00')
 >>> type(b)
 <class 'bytearray'>

当源参数是一个可迭代对象,那么这个迭代对象的元素都必须符合0 <= x < 256:

>>> b = bytearray([1, 2, 3, 4, 255])
 >>> b
 bytearray(b'\x01\x02\x03\x04\xff')
 >>> type(b)
 <class 'bytearray'

四、bytes和bytearray区别

bytes是不可变的,同str。bytearray是可变的,同list。

>>> b = bytearray()
 >>> b
 bytearray(b'')
 >>> b.append(10)
 >>> b
 bytearray(b'\n')
 >>> b.append(100)
 >>> b
 bytearray(b'\nd')
 >>> b.remove(100)
 >>> b
 bytearray(b'\n')
 >>> b.insert(0, 150)
 >>> b
 bytearray(b'\x96\n')
 >>> b.extend([1, 3, 5])
 >>> b
 bytearray(b'\x96\n\x01\x03\x05')
 >>> b.pop(2)
 1
 >>> b
 bytearray(b'\x96\n\x03\x05')
 >>> b.reverse()
 >>> b
 bytearray(b'\x05\x03\n\x96')
 >>> b.clear()
 >>> b
 bytearray(b'')

五、bytes和 bytearray转换

>>> b = b'abcdef'
 >>> bay = bytearray(b)
 >>> bay
 bytearray(b'abcdef')
 >>> b = bytes(bay)
 >>> b
 b'abcdef'

六、bytearray和str转换

>>> a = 'abcdef'
 >>> b = bytearray(a, encoding='utf-8')
 >>> b
 bytearray(b'abcdef')
 >>> a = b.decode(encoding='utf-8')
 >>> a
 'abcdef'

总结

以上所述是小编给大家介绍的详解python string类型 bytes类型 bytearray类型,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
python开发之文件操作用法实例
Nov 13 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
Apr 24 Python
Python实现发送QQ邮件的封装
Jul 14 Python
python函数式编程学习之yield表达式形式详解
Mar 25 Python
Python中几种属性访问的区别与用法详解
Oct 10 Python
使用python爬取微博数据打造一颗“心”
Jun 28 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
Sep 17 Python
在OpenCV里实现条码区域识别的方法示例
Dec 04 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
python实现四人制扑克牌游戏
Apr 22 Python
Python tempfile模块生成临时文件和临时目录
Sep 30 Python
Python可视化学习之matplotlib内置单颜色
Feb 24 Python
python使用os.listdir和os.walk获得文件的路径的方法
Dec 16 #Python
python读取与写入csv格式文件的示例代码
Dec 16 #Python
浅谈用VSCode写python的正确姿势
Dec 16 #Python
numpy中索引和切片详解
Dec 15 #Python
Python实现简单网页图片抓取完整代码实例
Dec 15 #Python
利用numpy实现一、二维数组的拼接简单代码示例
Dec 15 #Python
神经网络python源码分享
Dec 15 #Python
You might like
PHP开发文件系统实例讲解
2006/10/09 PHP
用PHP产生动态的影像图
2006/10/09 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
2014/10/14 PHP
PHP中的socket_read和socket_recv区别详解
2015/02/09 PHP
php检查字符串中是否包含7位GSM字符的方法
2015/03/17 PHP
用cssText批量修改样式
2009/08/29 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
原生js封装的一些jquery方法(详解)
2016/09/20 Javascript
使用JavaScript实现表格编辑器(实例讲解)
2017/08/02 Javascript
浅谈AngularJS中使用$resource(已更新)
2017/09/14 Javascript
zTree节点文字过多的处理方法
2017/11/24 Javascript
js 取消页面可以选中文字的功能方法
2018/01/02 Javascript
jquery根据name取得select选中的值实例(超简单)
2018/01/25 jQuery
详解ES6 系列之异步处理实战
2018/10/26 Javascript
vue使用Font Awesome的方法步骤
2019/02/26 Javascript
python操作xml文件示例
2014/04/07 Python
python查询mysql中文乱码问题
2014/11/09 Python
用Python写一个无界面的2048小游戏
2016/05/24 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
基于python3监控服务器状态进行邮件报警
2019/10/19 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
详解python 内存优化
2020/08/17 Python
Sofmap官网:日本著名的数码电器专卖店
2017/05/19 全球购物
学生个人求职自荐信格式
2013/09/23 职场文书
打架检讨书300字
2014/02/02 职场文书
党员组织关系介绍信
2014/02/13 职场文书
创业女性典型材料
2014/05/02 职场文书
党员对照检查材料思想汇报
2014/09/16 职场文书
雷峰塔导游词
2015/02/09 职场文书
搬迁通知
2015/04/20 职场文书
2015年村计划生育工作总结
2015/04/28 职场文书
团委副书记工作总结
2015/08/14 职场文书
学校教代会开幕词
2016/03/04 职场文书
django如何自定义manage.py管理命令
2021/04/27 Python
JavaScript的function函数详细介绍
2021/11/20 Javascript