目录
1. 字符串基本操作
字符串是不可变的,因此所有的元素赋值和切片赋值都是非法的。所有标准序列操作都适用于字符串,比如索引、切片、乘法、成员资格检查、长度、最小值和最大值。
2. 设置字符串的格式
对字符串调用方法format,并提供要设置其格式的值。每个值都被插入字符串中,以替换用花括号括起的替换字段。替换字段由以下可选部分组成:字段名、转换标志和格式说明符。
最简单的情况,只需向format提供要设置其格式的未命名参数,并在格式字符串中使用未命名字段。此时,有两种方式,一种为按顺序将字段和参数配对,另一种是给参数指定名称。
>>> "That is an {adj} apple {} you {v} me yesterday.".format(that, adj = delicious, v = gave)
>>> 'That is an delicious that you gave me yesterday.'
指定要在字段中包含的值后,就可添加设置其格式的指令了。转换标志(s、r和a)指定分别使用str、repr和ascii进行转换。类型说明符则是在格式说明(即冒号后面)使用。
>>> "The number is {num:f}".format(num = 210) # f:将小数表示为定点数
>>> 'The number is 210.000000'
>>> "The number is {num:b}".format(num = 210) # b:将整数表示为二进制数
>>> 'The number is 11010010'
宽度、精度是使用整数指定的,但精度需要在前面加上一个表示小数点的句点。千位分隔符使用逗号,放在宽度和表示精度的句点之间。
>>> 'The other number is {flo:18,.2f}'.format(flo = 2017210.798)
>>> 'The other number is 2,017,210.80'
在指定宽度和精度的数前面。可添加一个标志(零、加号、减号或空格)作为填充字符。要指定左对齐、右对齐和居中,可分别使用<、>和^。可使用填充字符来扩充对齐说明符,而不是默认的空格来填充。说明符=指定将填充字符放在符号和数字之间。将说明符+放在对其说明符后面可以给正数加上符号。
>>> print("{:^12.2f} \n {:#^12}".format(210.798, "NAME"))
>>> 210.80
>>> ####NAME####
井号(#)选项放在符号说明符和宽度之间,用于触发转换方式,随类型而异。对于二进制、八进制和十六进制的转换将加上一个前缀;对于各种十进制数则要求必须包含小数点。
>>> print("{:#b}".format(210))
>>> 0b11010010
3. 字符串方法
字符串的很多方法都是从模块string那“继承”而来的。
center:通过在两边添加填充字符(默认为空格)让字符串居中。
zfill:在字符串左边填充0(但将原来打头的+或-移到开头),使其长度为width。
find:在字符串中查找子串。如果找到,就返回子串的第一个字符的索引,否则返回-1。
index:返回找到的第一个子串的索引,如果没有找到这样的子串,将引发ValueError异常。
join:用于合并序列的元素。但所合并序列的元素必须都是字符串。
>>> names = ["joy", "ketty", "aliy"]
>>> ' '.join(names) # 调用方式:分隔符.join(序列)
>>> 'joy ketty aliy'
lower:返回字符串的小写版本。
replace:将指定子串都替换为另一个字符串,并返回替换后的结果。
spilt:用于将字符串拆分为序列。如果没有指定分隔符,将默认在单个或多个连续的空白字符(空格、制表符、换行符等)处进行拆分。
>>> "you say that this is an apple.".split()
>>> ['you', 'say', 'that', 'this', 'is', 'an', 'apple.']
strip:将字符串开头和末尾的空白(但不包括中间的空白)删除,并返回删除后的结果。
translate:根据转换表对字符串中的所有字符都进行转换,并返回结果。
isdigit:检查字符串中的字符是否都是数字。