对python3新增的byte类型详解

yipeiwu_com6年前Python基础

在python2中字节类型同字符类型区分不大,但是在python3中最重要的特性是对文本和二进制数据做了更加清晰的区分,文本总是Unicode,由字符类型表示,而二进制数据则由byte类型表示,python3不会以任意隐式方式混用字节型和字符型,也因此在python3中不能拼接字符串和字节包(python2中可以,会自动进行转换),也不能在字节包中搜索字符串,也不能将字符串传入参数为字节包的函数。

需要注意的是,在网络数据传输过程中,python2可以通过字符串(string)方式传输,但是python3只能通过二进制(bytes)方式来传输,因此要对传输文本进行转换。

python3新增的byte类型

例如下面的例子:

>>>'你好'.encode('utf-8')

b'\xe4\xbd\xa0\xe5\xa5\xbd'

>>> b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf-8')

'你好'

 >>>'你好'.encode('utf-8').decode('utf-8')
'你好'

其中

1.encode()和decode()方法中默认了编码为utf-8,但是为了避免错误,最好将编码加上。

2.encode()出来的结果的“b”代表二进制(binary)

以上这篇对python3新增的byte类型详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

详解使用python的logging模块在stdout输出的两种方法

详解使用python的logging模块在stdout输出 前言:   使用python的logging模块时,除了想将日志记录在文件中外,还希望在前台执行python脚本时,可以将日志...

python requests 测试代理ip是否生效

代码如下所示: import requests '''代理IP地址(高匿)''' proxy = { 'http': 'http://117.85.105.170:808',...

解决python gdal投影坐标系转换的问题

要将xian80地理坐标系转换成投影坐标系: xian1980 = """ GEOGCS["GCS_Xian_1980", DATUM["Xian_1980", SPHE...

使用Python实现 学生学籍管理系统

使用Python实现 学生学籍管理系统

大家好,今天跟大家分享一个用Python实现的学生学籍管理系统: 该代码主体由五个函数组成: 1.add_stu() 添加 2.del_stu() 删除 3.print_stu()打...

python自定义类并使用的方法

本文实例讲述了python自定义类并使用的方法。分享给大家供大家参考。具体如下: class Person: def __init__(self, first, middle,...