python中string库的相关函数的使用

class Template(__builtin__.object)

 一个支持字符替换的类,模块定义如下:

__init__(self, template)     # template是用来替换的模板,使用"$"或者"${}"来标识需要替换的字符
safe_substitute(*args, **kws)    #  用来替换的函数,在缺少key的情况下,会把字符串原封不动的显示出来
substitute(*args, **kws)    #用来替换的函数,在缺少key的情况下,会报一个KeyError的异常

用法示例:

>>> from string import Template
>>> s = Template( template = 'Good $hao study, day $tian up')
>>> dict = {'hao':'good','tian':'day'}
>>> s.substitute(dict)    #可以使用字典形式作为转换,字典中的键为字符串
'Good good study, day day up'
>>> s.safe_substitute(hao = 'good')   #也可以使用直接赋值的方法,赋值时需要加变量名;safe_substitute方法可以缺少key
'Good good study, day $tian up'
>>> s.substitute(hao = 'good')    #substitute方法不能缺少key,否则会报错
Traceback (most recent call last):
  File "", line 1, in
  File "C:\Python27\lib\string.py", line 176, in substitute
    return self.pattern.sub(convert, self.template)
  File "C:\Python27\lib\string.py", line 166, in convert
    val = mapping[named]
KeyError: 'tian'


atof(s)

    atof(s) -> float

将一个字符串形式的数转化为浮点数格式

atoi(s, base=10)

    atoi(s [,base]) -> int

将一个字符串形式的N进制整数转化为int形式的十进制数,N默认为10。如果base是0,则N为八进制。

atol(s, base=10)

    atol(s [,base]) -> long

将一个字符串形式的N进制整数转化为long形式的十进制数,N默认为10。如果base是0,则N为八进制。


另外,字符串转数字可以用int()、float(),数字转字符串可以用str()

capitalize(s)

    capitalize(s) -> string

将字符串的第一个字母大写,并返回

capwords(s, sep=None)

    capwords(s [,sep]) -> string

根据sep来分割和重组字符串,并把每个字符串的第一个字母大写。如果sep为空或者None,则分隔符为空格,且多个空格会被一个空格代替,字符串开头和结尾的空格将会被移除

举例:

>>> str= 'sdfldsgj  sdd scc sgg'
>>> str= 'sdfldsgj  sdd scc   s   gg   '
>>> capwords(str)
'Sdfldsgj Sdd Scc S Gg'
>>> capwords(str, 's')
'sDfldsGj  sDd sCc   s   gg   '

center(s, width, *args)

    center(s, width[, fillchar]) -> string
将字符串按照特定的宽度width居中,非字符部分用fillchar填充,默认为空格。在字符串长度大于width时,不会截断字符串

count(s, *args)

    count(s, sub[, start[,end]]) -> int

返回字符串中sub在start到end间出现过的次数

expandtabs(s, tabsize=8)

    expandtabs(s [,tabsize]) -> string
将字符串中的tab键用N个空格代替,默认为8个

find(s, *args)

    find(s, sub [,start [,end]]) -> in
寻找字符串从start到end间,sub是否出现过。出现过则返回出现的位置,否则返回-1

index(s, *args)

    index(s, sub [,start [,end]]) -> int

寻找字符串从start到end间,sub是否出现过。出现过则返回出现的位置,否则报错

join(words, sep=' ')

    join(list [,sep]) -> string

将一个列表中的元素使用sep连接起来,sep默认为空格

举例:

>>> li = ('1','2','2')
>>> join(li)
'1 2 2'

joinfields = join(words, sep=' ')

    joinfields(list [,sep]) -> string
和join的用法完全相同

ljust(s, width, *args)

    ljust(s, width[, fillchar]) -> string

将字符串按照特定的宽度width居左,非字符部分用fillchar填充,默认为空格。在字符串长度大于width时,不会截断字符串

lower(s)

    lower(s) -> string
将字符串中的所有字母转换为小写字母,并返回

lstrip(s, chars=None)

    lstrip(s [,chars]) -> string
去除字符串左边所有的char,char默认为空格

maketrans(...)

    maketrans(frm, to) -> string

用于生成一个从frm到to的映射关系表,用于字符串的译码。需要和translate()配合使用。

举例:

>>> num = '12345'
>>> key = 'aeiou'
>>> trantab = maketrans(num, key)
>>> trantab
'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0aeiou6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff'
>>> str = '1236745wgfab'
>>> translate(str, trantab)
'aei67ouwgfab'
>>> translate(str, trantab,'6w')
'aei7ougfab'

replace(s, old, new, maxreplace=-1)

    replace (str, old, new[, maxreplace]) -> string
将字符串s中的序列old替换为序列new,替换次数为maxreplace,默认全部替换

rfind(s, *args)

    rfind(s, sub [,start [,end]]) -> int
寻找字符串从start到end间,sub是否出现过。出现过则返回出现的位置,否则返回-1

rindex(s, *args)

    rindex(s, sub [,start [,end]]) -> int
寻找字符串从start到end间,sub是否出现过。出现过则返回出现的位置,否则报错

rjust(s, width, *args)

    rjust(s, width[, fillchar]) -> string
将字符串按照特定的宽度width居右,非字符部分用fillchar填充,默认为空格。在字符串长度大于width时,不会截断字符串

rsplit(s, sep=None, maxsplit=-1)

    rsplit(s [,sep [,maxsplit]]) -> list of strings
使用sep为分隔符,从右边开始分割字符串,最大分割次数为maxslit。默认分割符为空格,全部分割。

rstrip(s, chars=None)

    rstrip(s [,chars]) -> string

去除字符串右边所有的char,char默认为空格

split(s, sep=None, maxsplit=-1)

    split(s [,sep [,maxsplit]]) -> list of strings
使用sep为分隔符,从左边开始分割字符串,最大分割次数为maxslit。默认分割符为空格,全部分割。

splitfields = split(s, sep=None, maxsplit=-1)

    split(s [,sep [,maxsplit]]) -> list of strings
用法和split相同

strip(s, chars=None)

    strip(s [,chars]) -> string
去除字符串最左边和最右边的char,char默认为空格

swapcase(s)

    swapcase(s) -> string
将字符串的字母的大写变成小写,小写变成大写

translate(s, table, deletions='')

    translate(s,table [,deletions]) -> string

通过table的映射关系,将字符串s译码,并deletions中包含的字符。

用法举例参照maketrans()

upper(s)

    upper(s) -> string
将字符中的小写字符全部转换为大写字母,并返回

zfill(x, width)

    zfill(x, width) -> string

将字符串形式的数字x通过左边补0的方式,填充为宽度为width 的字符串,并返回


另外,其他的一些内建函数和方法也能够用在字符串上。

+

用来拼接字符串

*

将某一字符串重复n遍,并返回

title(s)

将字符串中的每个单词的首字母大写,其余字母小写,并返回


你可能感兴趣的:(Python)