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 相关文章推荐
Python3基础之list列表实例解析
Aug 13 Python
python实现颜色rgb和hex相互转换的函数
Mar 19 Python
python 划分数据集为训练集和测试集的方法
Dec 11 Python
不到20行代码用Python做一个智能聊天机器人
Apr 19 Python
Python八皇后问题解答过程详解
Jul 29 Python
Python多叉树的构造及取出节点数据(treelib)的方法
Aug 09 Python
python-opencv获取二值图像轮廓及中心点坐标的代码
Aug 27 Python
Django中使用haystack+whoosh实现搜索功能
Oct 08 Python
python hash每次调用结果不同的原因
Nov 21 Python
python 实现矩阵填充0的例子
Nov 29 Python
Python判断三段线能否构成三角形的代码
Apr 12 Python
Python进阶学习之带你探寻Python类的鼻祖-元类
May 08 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
PHP 翻页 实例代码
2009/08/07 PHP
YII模块实现绑定二级域名的方法
2014/07/09 PHP
JS对select控件option选项的增删改查示例代码
2013/10/21 Javascript
js网页实时倒计时精确到秒级
2014/02/10 Javascript
Jquery中基本选择器用法实例详解
2015/05/18 Javascript
jQuery Validate初步体验(一)
2015/12/12 Javascript
jquery+ajax实现直接提交表单实例分析
2016/06/17 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
浅谈React中的元素、组件、实例和节点
2018/02/27 Javascript
React 组件间的通信示例
2018/06/14 Javascript
vue监听input标签的value值方法
2018/08/27 Javascript
JS实现容器模块左右拖动效果
2020/01/14 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
[49:13]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第一局
2016/02/27 DOTA
[05:15]2018年度CS GO社区贡献奖-完美盛典
2018/12/16 DOTA
使用Python脚本操作MongoDB的教程
2015/04/16 Python
python二维列表一维列表的互相转换实例
2018/07/02 Python
python http基本验证方法
2018/12/26 Python
Python选择网卡发包及接收数据包
2019/04/04 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
Python 字符串类型列表转换成真正列表类型过程解析
2019/08/26 Python
Python tornado上传文件的功能
2020/03/26 Python
Python logging日志模块 配置文件方式
2020/07/12 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
SOA的常见陷阱或者误解是什么
2014/10/05 面试题
员工年终演讲稿
2014/01/03 职场文书
应届护士求职信范文
2014/01/26 职场文书
环保志愿者活动方案
2014/08/14 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
新闻发布会活动策划方案
2014/09/15 职场文书
一份关于丢失公司财物的检讨书
2014/09/19 职场文书
营销与策划实训报告
2014/11/05 职场文书
开平碉楼导游词
2015/02/06 职场文书
2016年中秋节晚会领导致辞
2015/11/26 职场文书