《Python学习手册 第五版》 -第37章 Unicode和字节串

本章重点内容:

1、字符串基础知识

2、编写基本的字符串

3、编写Unicode字符串

4、使用Python3 bytes对象

5、使用Python3 bytearray对象

6、使用文本文件和二进制文件

7、使用Unicode文件

8、Python3 中其他字符串工具修改

接下来,针对以上重点内容,展开详细的说明

1、字符串基础知识

编码是根据一个期望的编码名称,把一个字符串翻译为其原始字节形式的过程

解码是根据其编码名称,把一个原始字节串翻译为字符串形式的过程

通过编码和解码的说明,我们可以知道,编码的名称会有不同的类型,比较知名的有:ASCII,Latin-1,UTF-8,以及Unicode,他们之间有彼此包含的关系,其中Unicode是涵盖范围最广,用在国际化标准中的

Python3中有三种字符串对象类型:

str表示解码的Unicode文本(包括ASCII)

bytes表示二进制数据(包含编码的文本)

bytearray,一种可变得bytes类型

文本和二进制文件

文本文件:当一个文件已文本模式打开的时候,读取器数据会自从将其内容解码,并且将解码的内容返回为一个str,写入内容需要一个str,并且在将其传输到文件之前自动编码它

二进制文件:通过向内置open调用的模式字符串参数添加一个b(只能小写),将以二进制模式打开一个文件,此时读取其数据不会以任何方式解码它,而是直接返回其未经修改的原始内容,并将其作为一个bytes对象

2、编写基本的字符串

首先看下基本的str和bytes类型,具体代码如下:

 

 str字符串类型,之前的章节都有使用过,比较好理解

bytes类型实际上是一个短整数序列,虽然打印内容显示的是字符,但是通过索引或者切片就可以看到两者的不同,代码如下:

 

 bytes对象和str一样,也是无法修改的

这两种字符串类型是可以相互转换的

str转换成bytes:通过str.encode()和bytes(S,encoding)两种方式实现,具体代码如下:

 

 bytes转换成str:通过bytes.decode()和str(B,encoding)两种方式实现,具体代码如下:

 

 3、编写Unicode字符串

编写ASCII文本

ASCII文本是一种简单的Unicode类型,它作为一个字节值序列存储,并且每个字节值代表一个字符:

 

 编写非ASCII文本

可以通过十六进制或Unicode转义来在文本字符串中嵌入Unicode码点序数值来实现,具体代码如下:

 

 4、使用Python3 bytes对象

前面说过,bytes是二进制对象,和str一样是不可修改的,很多的使用方法也和str类似,一些方法调用,如下:

 

 

5、使用Python3 bytearray对象

bytearray,这是范围在0到255之间的整数的一个可变序列,它是bytes的可变得变体,它本身支持和bytes相同的字符串方法和序列操作,并且支持和列表同样多的可变得原处修改操作

可以把str和bytes类型转换为bytearray类型,具体代码如下:

 

 两者的转换中会有所不同,str转换需要定义encoding,而bytes类型,不需要

创建bytearray对象后,就可以和可变得列表一样,进行很多操作来,具体代码示例如下:

 

 6、使用文本文件和二进制文件

打开文本文件

 

 这是一般的使用方式,可以把相关代码并在一起,进行简化,具体代码如下:

 

 打开二进制文件

采用精简的代码方式,具体如下:

 

 7、使用Unicode文件

读写Unicode,具体代码如下:

 

 手动编码,具体代码如下:

 

 文件输出编码,具体代码如下:

 

 文件输入编码,具体代码示例如下:

 

 8、Python3 中其他字符串工具修改

re模式匹配模块,具体代码示例如下:

 

 struct 二进制数据模块,具体代码示例如下:

 

 pichle对象序列化模块,具体代码示例如下:

 

 以上,就是本章重点内容的讲解,祝学习愉快!

 

《Python学习手册 第五版》 每章时间规划及完成进度:

2019.11.25-2019.12.01 第01章,已完成:《Python学习手册 第五版》 -第1章 问答环节

2019.12.02-2019.12.08 第02章,已完成:《Python学习手册 第五版》 -第2章 Python如何运行程序

2019.12.09-2019.12.15 第03章,已完成:《Python学习手册 第五版》 -第3章 你应如何运行Python程序

2019.12.16-2019.12.22 第04章,已完成:《Python学习手册 第五版》 -第4章 介绍Python对象类型

2019.12.23-2019.12.29 第05章,已完成:《Python学习手册 第五版》 -第5章 数值类型

2019.12.30-2020.01.05 第06章,已完成:《Python学习手册 第五版》 -第6章 动态类型

2020.01.06-2020.01.12 第07章,已完成:《Python学习手册 第五版》 -第7章 字符串基础

2020.01.12-2020.01.19 第08章,已完成:《Python学习手册 第五版》 -第8章 列表与字典

2020.01.20-2020.01.26 第09章,已完成:《Python学习手册 第五版》 -第9章 元组、文件与其他核心类型

2020.01.27-2020.02.02 第10章,已完成:《Python学习手册 第五版》 -第10章 Python语句简介

2020.02.03-2020.02.09 第11章,已完成:《Python学习手册 第五版》 -第11章 赋值、表达式和打印

2020.02.10-2020.02.16 第12章,已完成:《Python学习手册 第五版》 -第12章 if测试和语法规则

2020.02.17-2020.02.23 第13章,已完成:《Python学习手册 第五版》 -第13章 while循环和for循环

2020.02.24-2020.03.01 第14章,已完成:《Python学习手册 第五版》 -第14章 迭代和推导

2020.03.02-2020.03.08 第15章,已完成:《Python学习手册 第五版》 -第15章 文档

2020.03.09-2020.03.15 第16章,已完成:《Python学习手册 第五版》 -第16章 函数基础

2020.03.16-2020.03.22 第17章,已完成:《Python学习手册 第五版》 -第17章 作用域

2020.03.23-2020.03.29 第18章,已完成:《Python学习手册 第五版》 -第18章 参数

2020.03.30-2020.04.05 第19章,已完成:《Python学习手册 第五版》 -第19章 函数的高级话题

2020.04.06-2020.04.12 第20章,已完成:《Python学习手册 第五版》 -第20章 推导和生成

2020.04.13-2020.04.19 第21章,已完成:《Python学习手册 第五版》 -第21章 基准测试

2020.04.20-2020.04.26 第22章,已完成 :《Python学习手册 第五版》 -第22章 模块:宏伟蓝图

2020.04.27-2020.05.03 第23章,已完成:《Python学习手册 第五版》 -第23章 模块代码编写基础

2020.05.04-2020.05.10 第24章,已完成:《Python学习手册 第五版》 -第24章 模块包

2020.05.11-2020.05.17 第25章,已完成:《Python学习手册 第五版》 -第25章 高级模块话题

2020.05.18-2020.05.24 第26章,已完成:《Python学习手册 第五版》 -第26章 OOP:宏伟蓝图

2020.05.25-2020.05.31 第27章,已完成:《Python学习手册 第五版》 -第27章 类代码编写基础

2020.06.01-2020.06.07 第28章,已完成:《Python学习手册 第五版》 -第28章 一个更加实际的示例

2020.06.08-2020.06.14 第29章,已完成:《Python学习手册 第五版》 -第29章 类代码编写细节

2020.06.15-2020.06.21 第30章,已完成:《Python学习手册 第五版》 -第30章 运算符重载

2020.06.22-2020.06.28 第31章,已完成:《Python学习手册 第五版》 -第31章 类的设计

2020.06.29-2020.07.05 第32章,已完成:《Python学习手册 第五版》 -第32章 类的高级主题

2020.07.06-2020.07.12 第33章,已完成:《Python学习手册 第五版》 -第33章 异常基础

2020.07.13-2020.07.19 第34章,已完成:《Python学习手册 第五版》 -第34章 异常编写细节

2020.07.20-2020.07.26 第35章,已完成:《Python学习手册 第五版》 -第35章 异常对象

2020.07.27-2020.08.02 第36章,已完成:《Python学习手册 第五版》 -第36章 异常的设计

2020.08.03-2020.08.09 第37章,已完成

2020.08.10-2020.08.16 第38章,未完成

2020.08.17-2020.08.23 第39章,未完成

2020.08.24-2020.08.30 第40章,未完成

2020.08.31-2020.09.06 第41章,未完成

 

以下链接,可以供你了解这个学习笔记的所有章节最新进度

自学笔记系列:《Python学习手册 第五版》 -写在开始之前

 

posted @ 2020-07-12 00:24  诡刺-ThornSoul  阅读(227)  评论(0编辑  收藏  举报