str成员函数解析

Str成员函数的调用均不影响调用者字符串。
函数中的可能参数start和end均与slice的对应参数意义一致。
----------------------------------------------------------------------
S.lower() -> string
小写化所有可能字符。
之所以“可能”是因为有些字符并不存在大小写转换,如”12^&”等等,下同。
----------------------------------------------------------------------
S.upper() -> string
大写化所有可能字符。
----------------------------------------------------------------------
S.swapcase() -> string
大小写反转所有可能字符。
----------------------------------------------------------------------
S.capitalize() -> string
大写化首字符,小写化其余可能字符。
>>> "this is a TEST. OK?".capitalize()
'This is a test. ok?'
----------------------------------------------------------------------
S.count(sub[, start[, end]]) -> int
返回sub在S中不重叠出现的个数。
sub='aa'在S='aaa'中不重叠出现的次数是1,即S[0:2]。
S[1:3]与S[0:2]重叠,重叠元素为S[1],故舍去。
>>> 'aaa'.count('aa')
1
----------------------------------------------------------------------
S.endswith(suffix[, start[, end]]) -> bool
如果S以suffix结尾则返回True,否则返回False。
suffix也可以是一字符串tuple,S只要以tuple中任意元素结尾即返回True。
----------------------------------------------------------------------
S.startswith(prefix[, start[, end]]) -> bool
如果S以prefix开始则返回True,否则返回False。
其他同S.endswith。
----------------------------------------------------------------------
S.isalnum() -> bool
S中字符非字母即数字,则返回True;否则返回False。S为'',返回False。
有效字符为0~9、A~Z、a~z
----------------------------------------------------------------------
S.isalpha() -> bool
S中所有字符均为字母返回True,否则返回False。S为'',返回False。
有效字符为A~Z、a~z
参考string.ascii_letters_
----------------------------------------------------------------------
S.islower() -> bool
S中所有字符均为小写字母返回True,否则返回False。S为'',返回False。
有效字符为a~z
参考string.ascii_lowercase
----------------------------------------------------------------------
S.isupper() -> bool
S中所有字符均为大写字母返回True,否则返回False。S为'',返回False。
有效字符为A~Z
参考string.ascii_uppercase
----------------------------------------------------------------------
S.isdigit() -> bool
S中所有字符均为数字返回True,否则返回False。S为'',返回False。
有效字符为0~9
参考string.digits
----------------------------------------------------------------------
S.isspace() -> bool
S中所有字符均为空白字符返回True,否则返回False。S为'',返回False。
有效字符为'\t\n\x0b\x0c\r '。注意后面有一个空格,共6个字符。
参考string.whitespace
----------------------------------------------------------------------
S.istitle() -> bool
S为标题字符串,则返回True,否则返回False。S为'',返回False。
标题字符串:
大写字符只能跟在不可大小写转换字符之后。
不可大小写转换后的第一个字符如果是可以大小写转换字符一定是大写字符。
>>> "This Is One Test".istitle()
True
----------------------------------------------------------------------
S.title() -> string
返回S的标题字符串。
>>> "this is a test. ok? over".title()
'This Is A Test. Ok? Over'
----------------------------------------------------------------------
S.split([sep [,maxsplit]]) -> list of strings
返回S中由sep分割开来的部分组成的一个list。
sep默认为空白字符。
>>> "this is\ta\rtest\n!".split()
['this', 'is', 'a', 'test', '!']
Sep作为一个整体分割S,而不是其中每个字符均为分隔符。这似乎与默认情况矛盾。
>>> 'functional'.split('un')
['f', 'ctional']
sep并不出现在返回结果中,当sep在S首尾时,sep左右一定存在一个元素体现在返回结果中。
>>> 'onion'.split('on')
['', 'i', '']
如果提供参数maxsplit,最多分割maxsplit次,即返回结果中最多有maxsplit+1个元素。
----------------------------------------------------------------------
S.rsplit([sep [,maxsplit]]) -> list of strings
同S.split,除了分割从后往前进行。
>>> "This is a test".rsplit(' ', 1)
['This is a', 'test']
相对次序不变,并不会返回['test', 'This is a']
----------------------------------------------------------------------
S.splitlines([keepends]) -> list of strings
返回S中各行组成的一个list。行分隔符有两个’\n’和’\r’。
如果想保留各行的分行符,使用并设置参数keepends为True。
分割功能与str.split相似,但是,当行分隔符在S尾部时,返回结果中最后并不会有一个空串。同样感觉有点矛盾。
>>> '\n1\r2\n'.splitlines()
['', '1', '2']
----------------------------------------------------------------------
S.partition(sep) -> (head, sep, tail)
在S中搜索sep(此处的搜索是整体搜索,分隔符是一完整字符串,此处与strip不同),然后返回(S首部, sep, S尾部)。
注意只分割一次,同时,如果分割在头部,则返回结果中第一个元素为’’。
>>> "onion".partition("on")
('', 'on', 'ion')
如果S中没有sep,则返回(S, '', ''),其中包含三个元素。
>>> "onion".partition("one")
('onion', '', '')
如果sep在S尾部,则返回结果中最后一个元素为’’。
>>> "onion".partition("ion")
('on', 'ion', '')
----------------------------------------------------------------------
S.rpartition(sep) -> (tail, sep, head)
同S.partition,只是从后向前分割。
>>> 'abxyzab'.rpartition('ab')
('abxyz', 'ab', '')
>>> 'abxyzab'.partition('ab')
('', 'ab', 'xyzab')
----------------------------------------------------------------------
S.find(sub [,start [,end]]) -> int
在S中查找sub,返回sub在S中首次出现的位置索引。未找到返回-1。
----------------------------------------------------------------------
S.rfind(sub [,start [,end]]) -> int
在S中查找sub,返回sub在S中最后出现的位置索引。未找到返回-1。
----------------------------------------------------------------------
S.index(sub [,start [,end]]) -> int
同S.find,除了查找失败引发ValueError异常。
----------------------------------------------------------------------
S.rindex(sub [,start [,end]]) -> int
同S.rfind,除了:查找失败引发ValueError异常。
----------------------------------------------------------------------
S.join(sequence) -> string
返回以S连接sequence中各元素的字符串。
结果为seq1 S seq2 S …… S seqN。
>>> "--".join('abc')
'a--b--c'
特别是len(sequence)=1,返回值中不会出现S。
>>> "--".join('a')
'a'
----------------------------------------------------------------------
S.rjust(width[, fillchar]) -> string
在S右首填充字符fillchar至宽度为width,并返回填充后的结果;
填充字符fillchar默认为' '即一个空格。
如果width则原样返回S,绝不会截断。
----------------------------------------------------------------------
S.ljust(width[, fillchar]) -> string
在S左首填充字符fillchar至宽度为width,并返回填充后的结果;
其他同S.rjust
----------------------------------------------------------------------
S.center(width[, fillchar]) -> string
返回一个宽度为width的字符串,S居中,空余位置用fillchar字符填充。
其他同S.rjust
----------------------------------------------------------------------
S.zfill(width) -> string
用数字'0'填充S左首至宽度width,并返回结果。
如果width则原样返回S,绝不会截断。
并不要求S为数字字符串,虽然通常如此。
----------------------------------------------------------------------
S.replace (old, new[, count]) -> string
用new替换S中的old,并返回替换副本。
----------------------------------------------------------------------
S.strip([chars]) -> string or unicode
剔除S首尾的空白字符,然后返回。
注意可选参数是一个字符串(字符list)。
只要S首尾的字符在参数chars中,即剔除,而不是整体和chars匹配才剔除。
>>> " \r\nabc xyz\x0b\x0c".strip()
'abc xyz'
如果参数chars是unicode,则先要转换S为unicode。
----------------------------------------------------------------------
S.lstrip([chars]) -> string or unicode
同S.strip,除了:剔除S首部的空白字符。
----------------------------------------------------------------------
S.rstrip([chars]) -> string or unicode
同S.strip,除了:剔除S尾部的空白字符。
----------------------------------------------------------------------
S.expandtabs([tabsize]) -> string
替换S中的'\t'为tabsize个空格,并返回。
tabsize默认为8。
----------------------------------------------------------------------
S.translate(table [,deletechars]) -> string
首先删除S中的deletechars,如果提供的话。然后根据table映射S中的其余字符,并把结果返回。
table是一个精确长度为256的字符串。
假如你想让S中的'a'映射为'1',你只需设置table[97]='1'。
参考string.maketrans。
----------------------------------------------------------------------
S.decode([encoding[,errors]]) -> object
S.encode([encoding[,errors]]) -> object