Python字符串方法:


s.isdigit() -> bool  Return True if all characters in S are digits

s.islower() -> bool   Return True if all cased characters in S are lowercase                   

s.isspace() -> bool  Return True if all characters in S are whitespace

s.istitle() -> bool  如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False.                   

s.isupper() -> bool   如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False                  

s.isalpha() -> bool    如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False                 

s.isalnum() -> bool   如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False               


s.strip([chars]) -> string or unicode  截掉 string 左边和右边的空格或指定的字符,默认为空格

s.rstrip([chars])-> string or unicode  删除 string 字符串末尾的指定字符(默认为空格).

s.lstrip([chars])  -> string or unicode     用于截掉字符串左边的空格或指定字符               

str = "     this is string example....wow!!!     ";
print str.lstrip();
print str.rstrip();
print str.strip();
str = "88888888this is string example....wow!!!8888888";
print str.lstrip('8');
print str.rstrip('8');
print str.strip('8');



s.split([sep [,maxsplit]]) -> list of strings  以 sep 为分隔符切片 string,如果 maxsplit有指定值,则仅分隔 maxsplit个子字符串

s.rsplit([sep [,maxsplit]]) -> list of strings

s='hello wolrd I love you'
print s.split(' ',2)
print s.rsplit(' ',2)
str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
print str.split( );
print str.split(' ', 1 );
print str.rsplit( );
print str.rsplit(' ', 1 );


s.splitlines(keepends=False)  -> list of strings        按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

str1 = 'ab c\n\nde fg\rkl\r\n'
print str1.splitlines();
str2 = 'ab c\n\nde fg\rkl\r\n'
print str2.splitlines(True)



s.index(sub [,start [,end]]) -> int     跟find()方法一样,只不过如果sub不在 string中会报一个异常.

s.rindex(sub [,start [,end]])  -> int  从右边开始.

str1 = "this is string example....wow!!!";
str2 = "exam";
 
print str1.index(str2);
print str1.index(str2, 10);
print str1.index(str2, 40); #抛错

str1 = "this is string example....wow!!!";
str2 = "is";

print str1.rindex(str2);
print str1.index(str2);


s.find(sub [,start [,end]])  -> int        检测 sub 是否包含在 string 中,如果 start 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1               

s.rfind(sub [,start [,end]])  -> int   右边开始查找.返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1。

str = "this is really a string example....wow!!!";
substr = "is";
print str.rfind(substr); #5
print str.rfind(substr, 0, 10); #5
print str.rfind(substr, 10, 0); #-1
print str.find(substr); #2
print str.find(substr, 0, 10); #2
print str.find(substr, 10, 0); #-1


s.ljust(width[, fillchar]) -> string      返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

s.rjust(width[, fillchar]) -> string

str = "this is string example....wow!!!";
print str.ljust(50, '0');
print str.rjust(50, '0'); #000000000000000000this is string example....wow!!!


s.partition(sep) -> (head, sep, tail)      find()和 split()的结合体,从str出现的第一个位置起,把字符string 分成一个3元素的元组 string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str== string.

s.rpartition(sep) -> (head, sep, tail)      类似于 partition()函数,不过是从右边开始查找.           


str = "http://www.w3cschool.cc/"
print str.partition("://") #('http', '://', 'www.w3cschool.cc/')
print str.rpartition("://") #('http', '://', 'www.w3cschool.cc/')
print str.split("://") #['http', 'www.w3cschool.cc/']


s.capitalize() -> string        把字符串的第一个字符大写,其他字母变小写

s = 'a, B'
print s.capitalize() #A, b


s.center(width[, fillchar]) -> string       返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

str = 'runoob'
print str.center(20, '*')
print str.center(20)

   

s.startswith(prefix[, start[, end]]) -> bool  用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查

str = "this is string example....wow!!!";
print str.startswith( 'this' );
print str.startswith( 'is', 2, 4 );
print str.startswith( 'this', 2, 4 );#False


s.endswith(suffix[, start[, end]]) -> bool              用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。     

str = "this is string example....wow!!!";
suffix = "wow!!!";
print str.endswith(suffix);
print str.endswith(suffix,20);
suffix = "is";
print str.endswith(suffix, 2, 4);
print str.endswith(suffix, 2, 6); #False


s.count(sub[, start[, end]]) -> int    返回 sub 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 sub出现的次数                   

str = "this is string example....wow!!!";
sub = "i";
print "str.count(sub, 4, 40) : ", str.count(sub, 4, 40)
sub = "wow";
print "str.count(sub) : ", str.count(sub)


s.join(iterable) -> string          join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串              

str = "-";
seq = ["a", "b", "c"]; # 字符串序列
print str.join(seq);


s.decode([encoding[,errors]]) -> object    以encoding指定的编码格式解码string,如果出错默认报一个ValueError的异常,除非 errors指定的是'ignore'或者'replace'   

str = "this is string example....wow!!!";
str = str.encode('base64','strict');
print "Encoded String: " + str;
print "Decoded String: " + str.decode('base64','strict')


s.encode([encoding[,errors]]) -> object      以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'                                       

str = "this is string example....wow!!!";
print "Encoded String: " + str.encode('base64','strict')
print "Encoded String: " + str.encode('UTF-8','strict')


s.swapcase() -> string        翻转 string 中的大小写

s.lower()  -> string              转换 string 中的小写字母为小写           

s.upper()    -> string          转换 string 中的小写字母为大写           

s.title()-> string                 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写  

str = "this is string example....wow!!!";
print str.title();


s.translate(table [,deletechars]) -> string              据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 deletechars参数中。

python2的写法:

import string   # 导入string模块
  
intab = "aeiou"
outtab = "12345"
deltab = "thw"
  
trantab = string.maketrans(intab,outtab) # 创建字符映射转换表
  
test = "this is string example....wow!!!";
  
print test.translate(trantab);
print test.translate(trantab,deltab); # Python2中,删除指定字符在 translate() 方法中


python3的写法:
intab = "aeiou"
outtab = "12345"
deltab = "thw"
  
trantab1 = str.maketrans(intab,outtab) # 创建字符映射转换表
trantab2 = str.maketrans(intab,outtab,deltab) #创建字符映射转换表,并删除指定字符
  
test = "this is string example....wow!!!"
  
print(test.translate(trantab1))
print(test.translate(trantab2))


s.expandtabs([tabsize]) -> string    把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8。     

str = "this is\tstring example....wow!!!";
print "Original string: " + str;
print "Defualt exapanded tab: " +  str.expandtabs(); #默认一个空格替换\t
print "Double exapanded tab: " +  str.expandtabs(16);


s.replace(old, new[, count]) -> string  :返回的替换后的字符串,原来的字符串并不改变

s='hello python,hello world,hello c++,hello java!'
print s.replace('hello','Hello')#将字符串s中的所有'hello'子串,替换成'Hello',返回替换后的字符串,原字符串s不变
print s.replace('hello','Hello',2)#将字符串s中的前2个'hello'子串,替换成'Hello'
print s.replace('wahaha','haha')#要替换的'wahaha'子串不存在,直接返回原字符串


s.format(*args, **kwargs) -> string     

#通过位置格式化
who=('北京','我')
print '{1}去{0}'.format(*who)
#通过关键字格式化
who1={'where':'北京','who':'you'}
print '{who}去{where}'.format(**who1)
print '{:^20}'.format('你好啊') #居中对齐,后面带宽度
print '{:>20}'.format('你好啊') #右对齐,后面带宽度
print '{:<20}'.format('你好啊') #左对齐,后面带宽度
print '{:*<20}'.format('你好啊') #左对齐,后面带宽度,不够就填空
print '{:&>20}'.format('你好啊') #左对齐,后面带宽度,不够就填空
print '{:.1f}'.format(4.234324525254) #精度和类型f
print '{:.4f}'.format(4.1) #精度和类型f
print '{:b}'.format(250) #二进制转换
print '{:o}'.format(250) #八进制转换
print '{:d}'.format(250) #十进制转换
print '{:x}'.format(250) #十六进制转换
print '{:,}'.format(100000000) #千位分隔符,这种情况只针对于数字
print '{:,}'.format(235445.234235) #千位分隔符,这种情况只针对于数字


s.zfill(width) -> string   返回长度为 width 的字符串,原字符串 string 右对齐,如果长度不够前面填充0

s='hello wolrd I love you'
print s.zfill(50)