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实现简单温度转换的方法
Mar 13 Python
python 通过字符串调用对象属性或方法的实例讲解
Apr 21 Python
Django框架实现逆向解析url的方法
Jul 04 Python
python使用for循环计算0-100的整数的和方法
Feb 01 Python
python实现定时压缩指定文件夹发送邮件
Dec 22 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
Aug 08 Python
wxPython实现文本框基础组件
Nov 18 Python
Python函数参数类型及排序原理总结
Dec 19 Python
Python使用Chrome插件实现爬虫过程图解
Jun 09 Python
Pycharm自动添加文件头注释和函数注释参数的方法
Oct 23 Python
使用Django实现商城验证码模块的方法
Jun 01 Python
Python几种酷炫的进度条的方式
Apr 11 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调用JAVA的WebService简单实例
2014/03/11 PHP
php+mysql数据库实现无限分类的方法
2014/12/12 PHP
浅析PHP中的i++与++i的区别及效率
2016/06/15 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
PHP数组中头部和尾部添加元素的方法(array_unshift,array_push)
2017/04/10 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
javascript实现判断鼠标的状态
2015/07/10 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
原生JS实现层叠轮播图
2017/05/17 Javascript
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
Vue项目pdf(base64)转图片遇到的问题及解决方法
2018/10/19 Javascript
简述vue-cli中chainWebpack的使用方法
2019/07/30 Javascript
vue 子组件watch监听不到prop的解决
2020/08/09 Javascript
Python中__call__用法实例
2014/08/29 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
python实现彩票系统
2020/06/28 Python
解决安装pycharm后不能执行python脚本的问题
2019/01/19 Python
python输出决策树图形的例子
2019/08/09 Python
实现Python与STM32通信方式
2019/12/18 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
Python实现鼠标自动在屏幕上随机移动功能
2020/03/14 Python
CSS教程:CSS3圆角属性
2009/04/02 HTML / CSS
使用HTML5和CSS3制作一个模态框的示例
2018/03/07 HTML / CSS
泰国网上购物:Shopee泰国
2018/09/14 全球购物
财务会计专业应届毕业生求职信
2013/10/18 职场文书
生态学毕业生自荐信
2013/10/27 职场文书
综合办公室主任岗位职责
2014/04/13 职场文书
离婚协议书标准格式
2014/10/04 职场文书
小学元宵节活动总结
2015/02/06 职场文书
求职信内容一般写什么?
2015/03/20 职场文书
小学班主任工作总结2015
2015/04/07 职场文书
Java 超详细讲解数据结构中的堆的应用
2022/04/02 Java/Android