第7章 字符串
写在开头的读者笔记
值得一读的小节
字符串
1.
s = r'\temp' raw字符串
s = b'spam' Python3.0中的字节字符串
s = u'spam' 仅在Python2.6中使用的Unicode字符串
s.rstrip() 移除空格
s.split(',') 用展位符分隔
s.isdigit() 内容测试
'spam'.join(strlist) 插入分隔符
s.encode('latin-1') Unicode编码等
2.实际应用中的字符串
2.1.实际应用中的字符串 - 字符串转换工具
repr函数也能够将一个对象转换为其字符串形式。
>>> repr(42)
'42'
实际应用中的字符串 - 字符串转换工具 - 字符串代码转换
3.字符串方法
3.1.字符串方法 - 最初的字符串模块(在Python3.0中删除) - 基于字典的字符串格式化
字符串的格式化同时也允许左边的转换目标来引用右边字典中的键来提取对应的值。举例:
>>> "%(N)d %(x)s" % {"N":1, "x":"spam"}
'1 spam'
格式化字符串里(N)和(x)引用了右边字典中的键,并提取它们对应的值。
3.通常意义下的类型分类
3.1.通常意义下的类型分类 - 同样分类的类型共享其操作的集合 - 可变类型能够在原处修改
Python中的主要核心类型划分为如下两类:
不可变类型(数字、字符串、元组、不可变集合)
不可变的分类中没有哪个对象类型支持原处修改,尽管我们总是可以运行表达式来创建新的对象并将其结果分配给变量。
可变类型(列表、字典、可变集合)
相反,可变的类型总是可以通过操作原处修改,而不用创建新的对象。尽管这样的对象可以复制,但原处修改支持直接修改。
字符串常量
单双引号字符串是一样的
用转义序列代表特殊字节
raw字符串抑制转义
三重引号编写多行字符串块
实际应用中的字符串
基本操作
索引和分片
为什么要在意:分片
字符串转换工具
(读者:
repr函数也能够将一个对象转换为其字符串形式。
>>> repr(42)
'42'
)
字符串代码转换
(读者:
ord函数可以把单个的字符转换为对应的ASCII码,实际上返回的是这个字符在内存中对应的字符的二进制值。
chr函数可以把ASCII码转化为对应的字符。
>>> ord('s')
115
>>> chr(115)
's'
)
修改字符串
字符串方法
字符串方法实例:修改字符串
(读者:
>>> s = 'hello'
>>> a = s.replace('o', 'ack')
>>> a
'hellack'
>>> 'qazqaw'.replace('a', 'dd')
'qddzqddw'
replace的参数是原始字符串(任意长度)和替换原始子字符串的字符串(任意长度),之后进行全局搜索并替换。
replace可以充当实现模板替换的工具。
)
字符串方法实例:文本解析
实际应用中的其他创建字符串方法
最初的字符串模块(在Python3.0删除)
基于字典的字符串格式化
(读者:
字符串的格式化同时也允许左边的转换目标来引用右边字典中的键来提取对应的值。举例:
>>> "%(N)d %(x)s" % {"N":1, "x":"spam"}
'1 spam'
格式化字符串里(N)和(x)引用了右边字典中的键,并提取它们对应的值。
)
字符串格式化表达式
更高级的字符串格式化表达式
基于字典的字符串格式化
字符串格式化调用方法
基础知识
添加键、属性和偏移量
添加具体格式化
与%格式化表达式比较
为什么用新的格式化方法
通常意义下的类型分类
同样分类的类型共享其操作的集合
可变类型能够在原处修改
(读者:
Python中的主要核心类型划分为如下两类:
不可变类型(数字、字符串、元组、不可变集合)
不可变的分类中没有哪个对象类型支持原处修改,尽管我们总是可以运行表达式来创建新的对象并将其结果分配给变量。
可变类型(列表、字典、可变集合)
相反,可变的类型总是可以通过操作原处修改,而不用创建新的对象。尽管这样的对象可以复制,但原处修改支持直接修改。
)
本章小结
本章习题
本章解答
参考文献:
1.《Python学习手册》。