1. capitalize()
首字母大写,其它字母小写。
>>> name='z zlINK'
>>> name.capitalize()
'Z zlink'
2. casefold() & lower()
casefold()与lower()相似,将字符串中的大写字符转换为小写字符。
区别在于,lower()只对ASCII编码,即‘A-Z’有效,对其他语言(非汉语或者英语)则只能使用casefold()方法。
>>> S2 = "ß" #德语
>>> S2.casefold()
'ss'
3. center(self,width,fillchar=None)
返回一个将原字符串居中的新字符串,使用填充字符(默认为空格)填充剩下的字符串。
- self : 一般忽略
- width : 新字符串的长度
- fillchar : 填充字符
>>>str = 'runoob'
>>> str.center(20, '*')
'*******runoob*******'
>>> str.center(20)
' runoob '
>>>
4. count(sub,start=0,end=len(string))
计算一个指定的字符在指定范围内出现了几次。
>>> s='this is an example'
>>> s.count('is')
2
>>> s.count('is',0,4)
1
5. encode() & decode()
- encode() -- 编码
- decode() -- 解码
6. endswith() & startswith()
endswith()判断字符串是否以指定字符或子字符串结尾,常用于判断文件类型。
startswith()判断字符串开头是否是某字符或子字符串。
endswith(str,beg=[0,end=len(string)])
- str: 指定的字符或子字符串,可使用元祖,会逐一匹配
- beg : 设定检测的起始位置
- end : 设定检测的结束位置
>>> t='il'
>>> s='ilovepython'
>>> s.startswith(t)
True
>>> t=('h','o','n')
>>> s.endswith(t)
True
>>> s.endswith(t,-3)
True
7. find() & index()
检测指定范围内的字符串中是否包含子字符串str,如果包含则返回其索引值,否则返回-1。
find(str, beg=0, end=len(string))
- str : 指定检索的字符串
- beg : 开始的索引
- end : 结束的索引
>>> s='ilovepython'
>>> t='il'
>>> s.find(t)
0
>>> s.find(t,4)
-1
index()与find()功能一样,不同的地方在于如果不存在指定字符串则报一个异常。
8. format()
增强的字符串格式化功能。
详见Python format 格式化函数
>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
'hello world'
>>> "{0} {1}".format("hello", "world") # 设置指定位置
'hello world'
>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'
# 设置参数,可通过字典和列表设置
>>> "name:{name}, job: {job}".format(name="link", job="hero")
'name:link, job: hero'
9. isalnum()
检测字符串是否由字母和数字组成。
>>> s='a啊1'
>>> s.isalnum()
True
>>> s='a 1'
>>> s.isalnum()
False
10. isalpha()
检测字符串是否只由字母组成。
11. isdecimal() & isdigit() & isnumeric()
均为判断字符串是否只由数字组成。
isdigit()比isdecimal()适用范围更广,一些特殊的数字(比如带圈数字①②)也返回True。
isnumeric()适用范围更广,可识别中文。
>>> n='2二'
>>> n.isdecimal()
False
>>> n.isdigit()
False
>>> n.isnumeric()
True
12.isprintable()
判断字符串中所有字符是否都是可打印字符(in repr())或字符串为空。
Unicode字符集中“Other” “Separator”类别的字符为不可打印的字符(但不包括ASCII码中的空格(0x20))。可用于判断转义字符。
ASCII码中第0~32号及第127号是控制字符;第33~126号是可打印字符,其中第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母。
13. isspace()
判断字符串是否全为空格组成,是则返回True,否则返回False, 字符串为空也返回False。
14. title() & istitle()
title()将字符串变为标题,即其中的每个单词首字母均为大写。
istitle()判断字符串是否是标题。
15. isupper() & islower()
判断字符串中的字符是否全为大写/小写,是为True,否为False。
非英文字符不影响判断结果。
16. join()
将字符串中的每个元素按指定分隔符进行连接。
'str'.join(seq)
- str:分隔符。可以为空
- seq:要连接的元素序列、字符串、元组、字典
即:以str作为分隔符,将seq所有的元素合并成一个新的字符串。
>>> s='我爱python'
>>> ' '.join(s)
'我 爱 p y t h o n'
>>> ''.join(s)
'我爱python'
>>> "_".join(s)
'我_爱_p_y_t_h_o_n'
#对序列进行操作(分别使用' '与':'作为分隔符)
>>> seq1 = ['hello','good','boy','doiido']
>>> ' '.join(seq1)
hello good boy doiido
>>> ':'.join(seq1)
hello:good:boy:doiido
#对字符串进行操作
>>> seq2 = "hello good boy doiido"
>>> ':'.join(seq2)
h:e:l:l:o: :g:o:o:d: :b:o:y: :d:o:i:i:d:o
#对元组进行操作
>>> seq3 = ('hello','good','boy','doiido')
>>> ':'.join(seq3)
hello:good:boy:doiido
#对字典进行操作
>>> seq4 = {'hello':1,'good':2,'boy':3,'doiido':4}
>>> ':'.join(seq4)
boy:good:doiido:hello
17. ljust() & rjust()
指定宽度,让字符串左/右对齐,剩下的用指定字符填满,默认为空格。
ljust(width,fillchar=None)
>>> s='我爱python'
>>> s.ljust(12,'*')
'我爱python****'
>>> s.rjust(12,'-')
'----我爱python'
18. lstrip() & rstrip() & strip()
移除字符串左边/右边/左右两边的指定字符串,默认为空格。
当然,移除右边的字符串是反向匹配的。
>>> s='我爱python'
>>> s.rstrip('no')
'我爱pyth'
19. maketrans() & translate()
maketrans(intab,outtab,deltab)用于创建字符映射的转换表,intab表示需要转换的字符组成的字符串,outtab表示转换后的字符组成的字符串,两者须一一对应。deltab表示要删除的字符组成的字符串。
translate()根据maketrans()给出的转换表转换字符。
>>> intab='abcde'
>>> outtab='12345'
>>> deltab='xy'
>>> tran=str.maketrans(intab,outtab,deltab)
>>> s='abcde_xy_abcde'
>>> s.translate(tran)
'12345__12345'
20. partition() & rpartition()
根据指定分隔符(不能为空)从左/右将字符串进行分割,返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
>>> s
'abcde_xy_abcde'
>>> s.partition('xy')
('abcde_', 'xy', '_abcde')
>>> s.partition('xx')
('abcde_xy_abcde', '', '')
>>> s.rpartition('__')
('', '', 'abcde_xy_abcde')
>>> s.partition('')
Traceback (most recent call last):
File "<pyshell#87>", line 1, in <module>
s.partition('')
ValueError: empty separator
21. split() & rsplit()
也为分割函数。
str.split(str="", num=string.count(str)).
- str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
- num -- 分割次数,默认为分隔所有。
- 不显示分割字符。
>>> s='www. baidu. z\nz com' # 4个空字符
>>> s.split()
['www.', 'baidu.', 'z', 'z', 'com']
#参数2代表分割2次操作,后面就不分割了
>>> s.split(' ',2)
['www.', 'baidu.', 'z\nz com']
>>> s.rsplit('du')
['www. bai', '. z\nz com']
22. splitlines()
以换行为分割符进行分割,默认参数是False,True参数代表保留换行符(靠左保留)。
>>> s.splitlines()
['www. baidu. z', 'z com']
>>> s.splitlines(True)
['www. baidu. z\n', 'z com']
23. swapcase()
转换字符串中的大小写。
24. replace()
replace(old, new, count=None)
- count : 替换次数,默认为全替换
>>> s='www.baidu.www.com'
>>> s.replace('w','m')
'mmm.baidu.mmm.com'
>>> s.replace('w','m',2)
'mmw.baidu.www.com'
>>>
其他资料:
blog.51cto.com/cqtesting/1…
www.cnblogs.com/gouguoqilin…