希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴!
第七波:第3章 字符串
介绍如何使用字符串格式化其他的值,并简单了解一下利用字符串的分割、联接、搜索等方法能做些什么。
[3.1] 基本字符串操作
所有标准的序列操作(索引、分片、乘法、判断成员资格、求长度、取最小值和最大值)对字符串同样适用。
但是,记住字符串都是不可变的。
[3.2] 字符串格式化:精简版
字符串格式化适用字符串格式化操作符即百分号%来实现。在%左侧放置一个字符串,而右侧则放置希望格式化的值。只有元组和字典可以格式化一个以上的值。%称为转换说明符,标记了需要插入转换值的位置。如果要在格式化字符串里面包括百分号,那么必须使用%%,这样python就不会将百分号误认为是转换说明符了。
要格式化实数(浮点数)使用f说明符类型,同时提供所需要的精度:一个据点再加上希望保留的小数位。因为格式化说明符总是以表示类型的字符结束,所以精度应该放在类型字符前面:如 %.3f
string模块提供另外一种格式化值得方法:模板字符串。
[3.3] 字符串格式化:完整版
如果操作数是元组的话,则其中的每一个元素都会被单独格式化,每个值都需要一个对应的转换说明符。
基本的转换说明符,注意,这些项的顺序是至关重要的:
(1)%字符:标记转换说明符的开始
(2)转换标识:-表示左对齐,+表示在转换值之前要加上正负号,:“”空白字符表示正数之前保留空格,0表示转换值若尾数不够则用0来填充
(3)最小字段宽度:转换后的字符串至少应该具有该值指定的宽度。如果是*,则宽度会从值元组中读出。
(4)点(.)后跟精度值:如果转换的是实数,精度值就表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将会从元组中读出。
(5)转换类型
d\i 带符号的十进制整数
o 不带符号的八进制
u 不带符号的十进制
f\F 十进制浮点数
r 字符串,使用repr转换任意python对象
s 字符串,使用str转换任意python对象
[3.4] 字符串方法
字符串方法完全来源于string模块。
[3.4.1] find
find方法可以在一个较长的字符串中查找子字符串。它返回子串所在位置的最左端索引。如果没有找到则返回-1.字符串的find方法并不返回布尔值,如果返回的是0,则证明在索引0位置找到了子串。
rfind、index、rindex、count、startwith、endswith
[3.4.2] join
join方法是split方法的逆方法,用来在队列中添加元素。sep.join(seq)
[3.4.3] lower
lower返回字符串的小写字母版。upper返回字符串的大写字母版。
islower、capitalize、swapcase、title、istitle、upper、isupper
标题转换:title方法,会将字符串转换为标题---也就是所有单词的首字母大写,而其他字母小写。
另外一个string模块的capwords函数:string.capwords("that's all ,folks!")
"That's All.Folks!"
[3.4.4] replace
replace方法返回某字符串的所有匹配项均被替换之后得到的字符串。
[3.4.5] split
它是join的逆方法,用来将字符串分割成序列。注意,如果不提供任何分隔符,程序会把所有空格作为分隔符(空格、制表、换行等)。
[3.4.6] strip
strip方法返回除去两侧空格的字符串,也可以指定需要除去的字符,将它们列为参数即可,并且只会去除两侧的字符。
[3.4.7] translate
translate和replace方法一样,可以替换字符串中的某些部分。translate方法只处理当个字符。它的优势在于可以同时进行多个替换,有时比replace效率高得多。
3.5 小结
字符串格式化:格式化操作符%
字符串方法
[3.5.1] 新的函数
string.capwords(s[,sep]) 使用split函数分割字符串s(以sep为分隔符),使用capitalize函数将分割得到 的各单词首字母大写,并且使用join函数以sep为分隔符将各单词连接起来。
string.maketrans(from,to) 创建用于转换的转换表。