《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学习手册 第五版》 -写在开始之前