python中bytes和str类型的区别


Posted in Python onOctober 21, 2019

经过一上午的查找资料。大概理清楚了bytes类型和str类型的区别。

bytes类型和str类型在呈现形式有相同之处,如果你print一个bytes类型的变量,会打印一个用b开头,用单引号括起来的序列。比如:

>>> c = b'\x80abc'
>>> type(c)
bytes

我们看到c = b'\x80abc'表示的就是一个bytes类型。是不是和字符串很像?只是前面多出来一个b。那b'\x80abc的含义是什么呢?\x80即16进制的两位数,代表十进制的0-255,同时也代表一个字节,8个bit。abc,即英文字母abc,为什么这里不是\x...的形式呢。因为在utf-8里,一个ASCII码 的储存形式完全不变,一个a也就用一个字节来储存。

那么b'\x80abc'的储存情况就完全明白了,一共四个字节,每个字节值的情况一目了然。下面再做一个实验。

>>> A = b'\xe5\x9d\x8fHello'.decode("utf-8","strict")
>>> A
'坏Hello'
>>> type(A)
str

首先要知道utf-8是可变长编码。中文字符占3个字节,‘坏'字的utf-8码为\xe5\x9d\x8f 。那么给定一个bytes序列 b'\xe5\x9d\x8fHello', 用utf-8解码,显然能得到坏Hello。并且我们看到,解码之后,A已经变成了str类型,和预想一模一样。

假如python无法将一个二进制解码成utf-8码,则会报错。比如解码b'\x80abc'则会报错:

'utf-8' codec can't decode byte 0x80 in position 0:invalid start byte

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
Oct 13 Python
Python制作豆瓣图片的爬虫
Dec 28 Python
Python基于列表list实现的CRUD操作功能示例
Jan 05 Python
python定时关机小脚本
Jun 20 Python
python实现简单日期工具类
Apr 24 Python
Python深拷贝与浅拷贝用法实例分析
May 05 Python
python对Excel按条件进行内容补充(推荐)
Nov 24 Python
Python基于Tensor FLow的图像处理操作详解
Jan 15 Python
python opencv根据颜色进行目标检测的方法示例
Jan 15 Python
python标准库OS模块详解
Mar 10 Python
django-csrf使用和禁用方式
Mar 13 Python
解决Python 写文件报错TypeError的问题
Oct 23 Python
python中@property和property函数常见使用方法示例
Oct 21 #Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
Oct 21 #Python
基于python解线性矩阵方程(numpy中的matrix类)
Oct 21 #Python
python打印直角三角形与等腰三角形实例代码
Oct 20 #Python
python配置文件写入过程详解
Oct 19 #Python
python实现广度优先搜索过程解析
Oct 19 #Python
python字符串格式化方式解析
Oct 19 #Python
You might like
example2.php
2006/10/09 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
PHP带节点操作的无限分类实现方法详解
2016/11/09 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
php简单实现文件或图片强制下载的方法
2016/12/06 PHP
基于jquery的商品展示放大镜
2010/08/07 Javascript
javascript对talbe进行动态添加、删除、验证实现代码
2012/03/29 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
jQuery的内容过滤选择器学习教程
2016/04/18 Javascript
JavaScript中的事件委托及好处
2016/07/12 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
2016/12/27 Javascript
基于jQuery实现选项卡效果
2017/01/04 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
如何抽象一个Vue公共组件
2017/10/17 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
vue mvvm数据响应实现
2020/11/11 Javascript
vue3.0中使用element的完整步骤
2021/03/04 Vue.js
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
学习python 之编写简单乘法运算题
2016/02/27 Python
PyCharm代码格式调整方法
2018/05/23 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
基于Python实现剪切板实时监控方法解析
2019/09/11 Python
Python实现发票自动校核微信机器人的方法
2020/05/22 Python
CSS3 3D立方体效果示例-transform也不过如此
2016/12/05 HTML / CSS
如何定义一个可复用的服务
2014/09/30 面试题
校园文化建设方案
2014/02/03 职场文书
亲子阅读的活动方案
2014/08/15 职场文书
银行转正自我鉴定
2014/09/29 职场文书
领导干部整治奢华浪费之风思想汇报
2014/10/07 职场文书
2014年财务经理工作总结
2014/12/08 职场文书
2016秋季田径运动会广播稿
2015/12/21 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
详解mysql三值逻辑与NULL
2021/05/19 MySQL