Python 数据类型--Bytes类型

一、Bytes类型

在Python3以后,字符串和bytes类型彻底分开了。字符串是以字符为单位进行处理的,bytes类型是以字节为单位处理的。

bytes数据类型在所有的操作和使用甚至内置方法上和字符串数据类型基本一样,也是不可变的序列对象。

bytes对象只负责以二进制字节序列的形式记录所需记录的对象,至于该对象到底表示什么(比如到底是什么字符)则由相应的编码格式解码所决定。Python3中,bytes通常用于网络数据传输、二进制图片和文件的保存等等。可以通过调用bytes()生成bytes实例,其值形式为 b'xxxxx',其中 'xxxxx' 为一至多个转义的十六进制字符串(单个 x 的形式为:\x12,其中\x为小写的十六进制转义字符,12为二位十六进制数)组成的序列,每个十六进制数代表一个字节(八位二进制数,取值范围0-255),对于同一个字符串如果采用不同的编码方式生成bytes对象,就会形成不同的值.

复制代码
b = b''         # 创建一个空的bytes
b = byte()      # 创建一个空的bytes
b = b'hello'    #  直接指定这个hello是bytes类型
b = bytes('string',encoding='编码类型')  #利用内置bytes方法,将字符串转换为指定编码的bytes
b = str.encode('编码类型')   # 利用字符串的encode方法编码成bytes,默认为utf-8类型bytes.decode('编码类型'):将bytes对象解码成字符串,默认使用utf-8进行解码。
复制代码

对于bytes,我们只要知道在Python3中某些场合下强制使用,以及它和字符串类型之间的互相转换,其它的基本照抄字符串。

二、Bytes类型转换

1.Bytes与字符串的相互转换

string = b'xxxxxx'.decode() 直接以默认的utf-8编码解码bytes成string

b = string.encode() 直接以默认的utf-8编码string为bytes

2.Bytes转换为字典类型

Bytes本身是一个字典形式存储的数据,要想把这种存储形式的数据转换为字典类型

1)将Bytes 转换为 Strig

c=b.decode()

2)将String转换为字典

info=eval(c)

3.eval函数

eval函数就是实现list、dict、tuple与str之间的转化
str函数把list,dict,tuple转为为字符串
# 字符串转换成列表
a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
print(type(a))
b = eval(a)
print(b)

# 字符串转换成字典
a = "{1: 'a', 2: 'b'}"
print(type(a))
b = eval(a)
print(type(b))
print(b)

# 字符串转换成元组
a = "([1,2], [3,4], [5,6], [7,8], (9,0))"
print(type(a))
b=eval(a)
print(type(b))
print(b)

 

 

 

 

 

参考博客

python--数据类型bytes

Python中eval函数的作用

转载于:https://www.cnblogs.com/xibuhaohao/p/10108823.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/450004.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android应用开发-onNewIntent()

转载自Android中 activity 的onNewIntent函数

文件结构

C语言文件名命名的规则 1、文件标识符分为两部分,即文件名前缀和后缀。文件名前缀的最前面要使用范围限定符——模块名(文件名)缩写。 2、采用小写字母命名文件,避免使用一些比较通俗的文件名,如:publi…

POJ 1187 陨石的秘密 (线性DP)

题意: 公元11380年,一颗巨大的陨石坠落在南极。于是,灾难降临了,地球上出现了一系列反常的现象。当人们焦急万分的时候,一支中国科学家组成的南极考察队赶到了出事地点。经过一番侦察,科学家们发现陨石上刻…

bzoj2561 最小生成树

题意:给你无向图,给定一条边,求至少在原图中删去多少边才能使它同时在某个最大生成树和某个最小生成树中。 解: 假装我们把边排序了,然后把所有边权小于给定边的边都加进去了。 那么我们要删的就是s到t的一个割。 最大…

Android应用开发—onSaveInstanceState方法什么时候被调用?

转载自onSaveInstanceState方法什么时候被调用?(转载/整理) 在 Activity 被销毁之前被调用来保存每个实例的状态,这样就可以保证该状态能够从 onCreate(Bundle) 或者onRestoreInstanceState(Bundle)恢复过来。 本方法在 Activity 可能被销毁…

记一次phpstudy重启后Apache无法启动

相信大家都碰到过phpstudy中Apache无法启动的情况1、首先检查80端口是否占用,有的话就管理2、检查是否缺少vc9运行文件如果上述两种方法还不能解决问题就进入安装目录中Apache的bin目录下,在命令行窗口中执行httpd.exe,看看是否报错。我就是在…

C#任务调度——LimitedConcurrencyLevelTaskScheduler

这是参考大佬分享的代码写的有问题请提出指正,谢谢。using Serilog; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks;namespace TaskManager {class TaskFactoryMa…

同步本地远程分支 git remote prune origin

git remote prune origin (不常用总忘记,记录下)

264 参考帧 list0 list1

作了这么久的h264工作,这部分还一直从未去深入了解过,真是不求甚解啊,那帮老外的代码也写得太全了,该部分至今天才开始研究 首先参考帧这里关注的是两种,p ,b ,前向参考和后向参考 由白皮书中看到,p帧的参…

面试官问我:什么是JavaScript闭包,我该如何回答

闭包,有人说它是一种设计理念,有人说所有的函数都是闭包。到底什么是闭包?这个问题在面试是时候经常都会被问,很多小白一听就懵逼了,不知道如何回答好。这个问题也有很多朋友在公众号给李老师留言了,问题表…

robotframework基础学习(8)

变量的使用 在 Edit 标签页中主要分:加载外部文件、定义内部变量、定义元数据等三个部分。 (1):加载外部文件Add Library:加载测试库,主要是[PYTHON 目录]\Lib\site-packages 里的测试库 Add Resource&…

版本字符串比较工具接口常用接口函数

版本升级比较常用的接口,字符串解析,不是很难,但没必须重复造轮子,保存一份网上搜到的实现: /*** 比较版本号的大小,前者大则返回一个正数,后者大返回一个负数,相等则返回0** param version1* param version2* return…

[蓝桥杯]ALGO-188.算法训练_P0504

Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,Unclear和Nuclear、Rimon和MinOR都是Anagrams。编写一个程序,输入两个单词&#xff0…

什么是3-2混合

正如上面所述,电影转换成视频时,每秒24帧必须转成每秒60场(30帧)。实现这一点的方法是把电影的第一帧显示3场,然后把第二帧显示2场,再把第三帧显示3场,以此类推。这个3-2-3-2-3-2的顺序就被称为…

shell 的here document 用法、输入/输出重定向

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 什么是Here Document Here Document 是在Linux Shell 中的一种特殊的重定向方式&#xff0c;它的基本的形式如下 cmd << delimiter…

beta第二天

团队成员 郑西坤 031602542 &#xff08;队长&#xff09; 陈俊杰 031602504陈顺兴 031602505张胜男 031602540廖钰萍 031602323雷光游 031602319吴志鸿 0316206341.昨天的困难 陈顺兴&#xff1a;无 廖钰萍&#xff1a;无 吴志鸿&#xff1a;没有 雷光游&#xff1a;无 郑西坤…

void和void *

void f(void) { // 参数void可以省略cout << "aa"<<endl; } int t 22; int *a &t; void *p; // void *可以被赋值为其他类型 p a; cout << *(int *)p; // 使用的时候必须转到那个类型 转载于:https://www.cnblogs.com/pjishu/p/10343587.…

Android应用开发—Application

What is Application Application和Activity&#xff0c;Service一样是android框架的一个系统组件&#xff0c;当android程序启动时系统会创建一个application对象&#xff0c;用来存储系统的一些信息。通常我们是不需要指定一个Application的&#xff0c;这时系统会自动帮我们…

C语言符号

C语言运算符的优先级 一、运算符的优先级表 C 语言的符号众多&#xff0c;由这些符号又组合成了各种各样的运算符。既然是运算符就一定有其特定的优先级&#xff0c;下表就是C 语言运算符的优先级表&#xff1a; 注&#xff1a;同一优先级的运算符&#xff0c;运算次序由结合…

手机按键中控运行思路的个人理解

目前而言基本的自己理解的中控多线程脚本无非就是两种1.主代码作为脚本功能的载体 另外开辟一个线程作为和中控保持联系的部分(下面只是思路 无法直接运行)Import "zm.luae" zm.Init /* 该思路下的基本流程 从UI界面获取到云账号 和 本地的配置信息---->根据自己…