python中bytes和str类型的区别

 更新时间:2019年10月21日 09:40:40   作者:思念殇千寻  
这篇文章主要介绍了python中bytes和str类型的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

经过一上午的查找资料。大概理清楚了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中实现两个数的值交换的集中方法详解

    今天小编就为大家分享一篇对Python中实现两个数的值交换的集中方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python函数式编程指南(三):迭代器详解

    Python函数式编程指南(三):迭代器详解

    这篇文章主要介绍了Python函数式编程指南(三):迭代器详解,本文讲解了迭代器(Iterator)概述、使用迭代器、生成器表达式(Generator expression)和列表解析(List Comprehension)等内容,需要的朋友可以参考下
    2015-06-06
  • python实现将多个txt文件的内容合并为一个

    python实现将多个txt文件的内容合并为一个

    这篇文章主要为大家详细介绍了如何使用Python编写一个脚本,可以将指定目录中的多个.txt文件的内容合并到一个文件中,有需要的小伙伴可以参考下
    2024-12-12
  • python数据可视化JupyterLab实用扩展程序Mito

    python数据可视化JupyterLab实用扩展程序Mito

    这篇文章主要为大家介绍了python数据可视化JupyterLab实用扩展程序Mito的功能应用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-11-11
  • 使用Python对接OpenAi API实现智能QQ机器人的方法

    使用Python对接OpenAi API实现智能QQ机器人的方法

    这篇文章主要介绍了使用Python对接OpenAi API实现智能QQ机器人的方法,主要是提供一个方法思路,可以根据实现代码延申出更多的解决方法,需要的朋友可以参考下
    2023-03-03
  • Python字符串str超详细详解(适合新手!)

    Python字符串str超详细详解(适合新手!)

    str函数是Python的内置函数,它将参数转换成字符串类型,即人适合阅读的形式,下面这篇文章主要给大家介绍了关于Python字符串str超详细详解的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • python 子类调用父类的构造函数实例

    python 子类调用父类的构造函数实例

    这篇文章主要介绍了python 子类调用父类的构造函数实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • 解决pyPdf和pyPdf2在合并pdf时出现异常的问题

    解决pyPdf和pyPdf2在合并pdf时出现异常的问题

    这篇文章主要介绍了解决pyPdf和pyPdf2在合并pdf时出现异常的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python生成二维码的实例详解

    python生成二维码的实例详解

    这篇文章主要介绍了python生成二维码的实例详解的相关资料,希望通过本文能帮助到大家,让大家实现这样的功能,需要的朋友可以参考下
    2017-10-10
  • 全面解析Python中的self技巧

    全面解析Python中的self技巧

    在Python中,类的方法定义时通常会包含一个名为 self 的参数,它表示对象实例本身,下面我们就来了解一下self的相关应用技巧,需要的可以参考下
    2024-01-01

最新评论