希望通过博客园持续的更新,分享和记录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)  创建用于转换的转换表。

  

05-11 17:57