对python3新增的byte类型详解

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

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

例如下面的例子:

>>>'你好'.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类型详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题

    Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰.你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然). python3.0中怎么创建bytes型数据 bytes([1,2,3,4,5,6,7,8,9]) bytes("python"

  • Python线程创建和终止实例代码

    python主要是通过thread和threading这两个模块来实现多线程支持. python的thread模块是比較底层的模块,python的threading模块是对thread做了一些封装,能够更加方便的被使用.可是python(cpython)因为GIL的存在无法使用threading充分利用CPU资源,假设想充分发挥多核CPU的计算能力须要使用multiprocessing模块(Windows下使用会有诸多问题). 假设在对线程应用有较高的要求时能够考虑使用Stackless Pyt

  • python2与python3中关于对NaN类型数据的判断和转换方法

    今天在对一堆新数据进行数据清洗的时候,遇到了一个这样的问题: ValueError: cannot convert float NaN to integer 一开始是这样的,我用的jupyter是python35的,使用DataFrame读入了数据,其中有一列是year,默认读入时是将year这一列转换为了float,所以就有了这样的现象: 年份都是float类型了,看得我强迫症都犯了.于是通过这样的代码来进行强转,于是就报了上面的错误了. df.year = [int(y) for y in

  • Python3中bytes类型转换为str类型

    Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节流的函数(反之亦然). 问题背景 基于URL解析报文的时候,URL链接出现str类型+bytes类型是报错TypeError,如何解决这个问题呢? 解决方案 方法一:利用str函数 方法二:利用b

  • python3 与python2 异常处理的区别与联系

    在python2.x中 ,异常是这样的处理的,异常基类后面加一个逗号" ,"  然后跟着异常类型 import traceback try: 1/0 except Exception , err: print err 在python3.x中,异常是这样处理的,基类通过关键 词"as" 连接异常类型 import traceback try: 1/0 except Exception as err: print(err) 以上就是本文的全部内容了,希望大家能够喜欢.

  • Python3基础之基本数据类型概述

    本文针对Python3中基本数据类型进行实例介绍,这些对于Python初学者而言是必须掌握的知识,具体内容如下: 首先,Python中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建.在Python中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型.Python 3中有六个标准的数据类型: Numbers(数字) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionaries(字典) 本文主要

  • Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)

    我们可以利用urllib来抓取远程的数据进行保存哦,以下是python3 抓取网页资源的多种方法,有需要的可以参考借鉴. 1.最简单 import urllib.request response = urllib.request.urlopen('http://python.org/') html = response.read() 2.使用 Request import urllib.request req = urllib.request.Request('http://python.org

  • python修改注册表终止360进程实例

    本文实例讲述了python修改注册表终止360进程的实现方法.分享给大家供大家参考. 具体实现代码如下: import _winreg import os import shutil #复制自身 shutil.copyfile(K3.exe,c:WINDOWSsystem32K3.exe) #把360启动改为自身 run = _winreg.OpenKey( _winreg.HKEY_LOCAL_MACHINE, "SOFTWAREMicrosoftWindowsCurrentVersionRu

  • Python中用Ctrl+C终止多线程程序的问题解决

    复制代码 代码如下: #!/bin/env python # -*- coding: utf-8 -*- #filename: peartest.py import threading, signal is_exit = False def doStress(i, cc):     global is_exit     idx = i     while not is_exit:         if (idx < 10000000):             print "thread[

  • 对Python3中dict.keys()转换成list类型的方法详解

    在python3中使用dict.keys()返回的不在是list类型了,也不支持索引,我们可以看一下下面这张图片 那么我们应该怎么办呢,其实解决的方法也是非常简单的,只需要使用list()就可以了,可以看下面的代码 list(dict.keys()) 我们可以看一下下面这张图片,现在就支持索引了 以上这篇Python3中dict.keys()转换成list类型就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Python3.4学习笔记之类型判断,异常处理,终止程序操作小结

    本文实例讲述了Python3.4类型判断,异常处理,终止程序操作.分享给大家供大家参考,具体如下: python3.4学习笔记 类型判断,异常处理,终止程序,实例代码: #idle中按F5可以运行代码 #引入外部模块 import xxx #random模块,randint(开始数,结束数) 产生整数随机数 import random import sys import os secret = random.randint(1,10) temp = input("请输入一个数字\n")

随机推荐