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 相关文章推荐
python的类变量和成员变量用法实例教程
Aug 25 Python
Python实现快速多线程ping的方法
Jul 15 Python
详解python发送各类邮件的主要方法
Dec 22 Python
基于pip install django失败时的解决方法
Jun 12 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
Jan 15 Python
Python中将两个或多个list合成一个list的方法小结
May 12 Python
Python调用百度根据经纬度查询地址的示例代码
Jul 07 Python
pow在python中的含义及用法
Jul 11 Python
如何使用python进行pdf文件分割
Nov 11 Python
如何基于python生成list的所有的子集
Nov 11 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
Mar 05 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
Apr 02 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
php5 图片验证码实现代码
2009/12/11 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
2013/01/06 PHP
jQuery中after的两种用法实例
2013/07/03 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
2014/10/30 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
2017/03/09 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
JS基于正则表达式实现的密码强度验证功能示例
2017/09/21 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
2017/12/27 jQuery
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
JS实现的A*寻路算法详解
2018/12/14 Javascript
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
vue移动端使用appClound拉起支付宝支付的实现方法
2019/11/21 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
jquery实现两个div中的元素相互拖动的方法分析
2020/04/05 jQuery
vuex实现购物车功能
2020/06/28 Javascript
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
[43:43]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第三场 11.29
2020/12/02 DOTA
Python中的Classes和Metaclasses详解
2015/04/02 Python
Python中的集合类型知识讲解
2015/08/19 Python
举例讲解Python中字典的合并值相加与异或对比
2016/06/04 Python
详解常用查找数据结构及算法(Python实现)
2016/12/09 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
pycharm激活码快速激活及使用步骤
2020/03/12 Python
Python 忽略文件名编码的方法
2020/08/01 Python
Python调用飞书发送消息的示例
2020/11/10 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
英国领先的高级美容和在线皮肤诊所:Face the Future
2020/06/17 全球购物
教师应聘个人求职信
2013/12/10 职场文书
冰淇淋店创业计划书范文
2013/12/27 职场文书
生物制药自我鉴定
2014/01/25 职场文书
退休党员个人对照检查材料思想汇报
2014/09/29 职场文书
幼儿园小班教师随笔
2015/08/14 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers