写条记也是一件苦逼事。
str是在利用Python中,最常用的操为难刁难象,闇练节制str的各种操作函数和工具,对理解Python程序,提升编程技巧等具有莫大的好处。
首先强调一下,字符串工具是不可改变的,类似的类型如元组,也是在创立后就不可改变的。也便是说在python创建一个字符串后,你不能把这个字符中的某一部分改变。任何的函数改变了字符串后,都会返回一个新的字符串,原字符串在内存中并没有变。
下面的例子在Python3.6及pycharm中通过:
s1='this is the first Python program'
1、str.capitalize()
#返回一个首字母大写(如果首个是字母的话),其它字母变成小写的字符串
print(s1.capitalize() )
>>>This is the first python program
2、str.center(width[, fillchar])
#返回一个中间对齐的字符串。参数width是指总宽度;参数fillchar是用来添补的字符(是单个字符,不是字符串),这个参数可选,如果忽略的话则用空格添补;如果宽度小于原字符串长度,则fillchar参数不起浸染,如果width在于原字符长度,则用fillchar添补。
print(s1.center(40,'0') )
>>>0000this is the first Python program0000
3、str.count(sub[, start[, end]])
#返回字符中涌现子字符串(参数:sub)的个数,参数start和end可选。参数start为从哪个位置开始,参数end表示打算结束的位置,如果大于字符串长度,则也打算到字符串末了一个字符为止。
print(s1.count('is',5,100))
>>>1
4、str.encode(encoding=”utf-8”, errors=”strict”)
#返加一个用参数encoding编码的字符串,默认编码为“utf-8”,其他如gb2312 gbk gb18030 bz2 zlib big5 bzse64等。如果出错,则可以根据参数errors供应不同的缺点处理方案。
print(s1.encode() )
>>> b'this is the first Python program'
5、str.endswith(suffix[, start[,end]])
#如果字符串以指定的后缀suffix(后缀可以是元组)结束,返回 True,否则返回 False。后缀可往后缀探求的元组。startt和end分别指测试开始和结束的位置。
print(s1.endswith('ram'))
>>>True
6、str.expandtabs(tabsize=8)
#把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8,返回字符串中的 tab 符号('\t')转为空格后天生的新字符串。
print('01\t012\t0123'.expandtabs())
>>> 01 012 0123
7、str.find(sub[, start[, end]])
#返回最先在字符串中找到子字符串(参数sub)的位置,如果没有找到则返回-1,可选参数start和end分别是限定查找于开始和结束的位置。
print(s1.find('is'))
>>>2
8、str.format( args, kwargs)
#返回一个根据格式化表达式格式化后的字符串,在本人前期文章《Python中字符串格式化函数format的利用》中有着详细的解释。
9、str.index(sub[, start[, end]])
#与find()类似,只是如果没有找到子字符串,则返加一个缺点。
print(s1.index('tis'))
>>>ValueError: substring not found
10、str.isalnum()
#检测字符串是否全由字母和数字组成。
print(s1.isalnum() )>>>False
print('abcdef'.isalnum() )
>>>True
11、str.isalpha()
#是否全是字母,并至少有一个字符
print(s1.isalpha() )
>>>Falseprint(''.isalnum() )
>>>False
12、str.isdecimal()
#检讨字符串是否只包含十进制字符。这种方法只存在于unicode工具。
把稳:定义一个十进制字符串,只须要在字符串前添加 'u' 前缀即可。
print(u't289'.isdecimal() )
>>>Falseprint(u'3456'.isdecimal() )
>>>True
13、str.isdigit()
#检测字符串是否只由数字组成
print('289'.isdigit() )
>>>True
print('3456 34'.isdigit() )
>>>False
14、str.isidentifier()
#根据Python语法的定义,判断字符串是否是一个合法的可作为变量的标识符
print('2sd'.isidentifier() )
>>>Falseprint('_3456 34'.isidentifier() )
>>>Falseprint('中456'.isidentifier() )
>>>Trueprint('ss456'.isidentifier() )
>>>True
15、str.islower()
#检测字符中的字母(不包括其他字符)是否全是小写
print('2sd th!'.islower())
>>>True
16、str.isnumeric()
#测字符串是否只由数字组成。这种方法是只针对unicode工具。
注:定义一个字符串为Unicode,只须要在字符串前添加 'u' 前缀即可
print('243'.isnumeric())
>>>True
17、str.isprintable()
#判断字符串的所有字符都是可打印字符或字符串为空。Unicode 字符集中 “Other” “Separator” 类别的字符为不可打印的字符(但不包括 ASCII 的空格(0x20))。
在ASCII码中,第0~32号及第127号是掌握字符;第33~126号是可打印字符,个中第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英笔墨母,97~122号为26个小写英笔墨母,别的的是一些标点符号、运算符号等
print('\0x267wi'.isprintable() )
>>>False
18、str.isspace()
#字符串中只包含空格,则返回 True,否则返回 False.
print(s1.isspace() )
>>>Falseprint(' '.isspace() )
>>>True
19、str.istitle()
#检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False.
print(s1.istitle())
>>>Falseprint('This Is A Apple'.istitle())
>>>True
20、str.isupper()#检测字符串中所有的字母是否都为大写。如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 Falseprint(s1.isupper())>>>Falseprint('THIS IS A'.isupper())>>>True21、str.join(iterable)#用于将序列中的元素以指定的字符连接天生一个新的字符串。参数:iterable为要连接的元素系列。把稳:元素必须为字符串类型,不为能数字或其它。print('ww-'.join(['1','2','4']))>>>1ww-2ww-4print('ww-'.join(('aa','22','cc')))>>>aaww-bbww-cc22、str.ljust((width[, fillchar]))#返回一个原字符串左对齐,并利用空格添补至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。print('ww-'.ljust(15,'0'))>>> ww-00000000000023、str.lower()#返回一个小写的字符串print('My Name Is'.lower() )>>> my name is24、str.lstrip([chars])#返回一个去掉左边空格或指定字符串(参数:chars)的字符串print(' My Name Is'.lstrip())输出:My Name Isprint('My Name Is'.lstrip('My'))输出:Name Is25、str.maketrans(x[, y[, z]])#返加一个翻释表,用于函数str.translate(table) 如果只有一个参数x,它必须是一个字典,关键字必须为长度为1的Unicode字符或整数,值字符串可为任意长度或空。字符键将被转换为顺序。 如果有两个参数,它们必须是长度相同的字符串,字符串x中的每一个字符将映射到在同一位置字符串y的字符。例子可看str.translate(table)26、str.partition(sep) # 用指定的分隔字符串(参数sep)来分隔原字符串,返回一个包含三个元素的元组。 如是指定的分隔字符串(参数sep)在原字符串中存在,则返中的元组中前后两个元素分别为被分别隔的原字符串(不包括分隔字符串),中间元素为分隔字符中。print('http:\\www.13give.com'.partition('ww') )输出:('http:\\', 'ww', 'w.13give.com')如果指定的分隔字符中在原字符串中不存在,则返加的元组中第一个元素为原字符串,第二、三个元素为空。print('http:\\www.13give.com'.partition('wwww') )输出:('http:\\www.13give.com', '', '')27、str.replace(old, new[, count])#返回一个经更换过的字符串,参数old为要被更换的原字符串中的字符串,参数new为被更换成的字符串,可选参数count为更换次数,没有指定的话,则全部更换。print('http:\\www.13give.com'.replace('.','==',1) )输出:http:\www==13give.com28、str.rfind(sub[, start[, end]])#返回字符串末了一次涌现的位置(从右向左查询),如果没有匹配项则返回-1。参数sub为要查找的字符串,参数start为开始查找的位置,默认为 0,参数end为结束查找的位置,默认为字符串的长度。print('http:\\www.13give.com'.rfind('.'))输出:1629、str.rindex(sub[, start[, end]])#同rfind,只是没有查找到则产生一个缺点()。30、str.rjust(width[, fillchar])#返加一个宽度为width,右对齐的字符串,可选参数fillchar为添补字符。print('this is a apple'.rjust(25,'0'))输出:0000000000this is a apple 31、str.rpartition() #同str.partition(sep)相似,只是如果原字符串中没有包括分隔字符串是,返加的元组中第一、二为空,第三个元素为原字符串。 print('http:\\www.13give.com'.rpartition('wwww') ) 输出:('', '', 'http:\\www.13give.com')32、str.rsplit(sep=None, maxsplit=-1)#从右边开如分离字符串,返加一个不包括分离符(参数sep)的字符串列表,默认返回分离后的全部元素。如果指定maxsplit,指分隔的列表上标数字。print('http:\\www.13give.com'.rsplit('.'))输出:['http:\\www', '13give', 'com']print('http:\\www.13give.com'.rsplit('.',1))输出:['http:\\www.13give', 'com']33、str.rstrip(([chars])#返回一个去除右边空格的新字符串,可选参数(chars)是一个字符数组,如果存在,则原字符串从右边开始,一个个字符去匹配参数(chars)字符数组的中元素,直到没有匹配为止print('sssasy nosayweee'.rstrip('mewy'))输出:sssasy nosa34、str.split(sep=None, maxsplit=-1)#返回一个用参数sep分离的字符串数组,参数sep表示用来分离的字符串,默认为空格,不涌如今末了分离出来的字符串数组中,参数maxsplit默认为-1,表示全部分离,如果为一个其它整数,表示分隔的列表上标数字。连续涌现的分隔符将被视为一个空字符串,随着结果一起返回到字符串列表中。print('wsssasy nosayweee'.split('s'))输出:['w', '', '', 'a', 'y no', 'ayweee']35、str.splitlines([keepends])#返回一个根据换行符来分隔的列表,可选参数(keepends)表示换行符是否也一起返回。可能的换行符包括:\n、\r、\r\n 、\v 、 \x0b 、 \f 、 \x0c 、\x1c 、\x1d 、\x1e 、\x85 、\u2028 、\u2029print('ab c\n\nde fg\rkl\r\n'.splitlines())输出:['ab c', '', 'de fg', 'kl']print('ab c\n\nde fg\rkl\r\n'.splitlines(keepends=True))输出:['ab c\n', '\n', 'de fg\r', 'kl\r\n']36、str.startswith(prefix[, start[, end]])#测试原字符串开头是否包括参数(prefix),可选参数指定开始和结束的位置。 print('mynameis'.startswith('na',2,7) )输出:True37、str.strip(([chars])#默认返回去除字符串中旁边两端的空格,可选参数(chars)是一个字符列表,表示旁边两端的字符分别匹配列表元素,直到不匹配为止。print(' mynameis '.strip() )输出:mynameisprint('wwamynameisasww'.strip('wwa') )输出:mynameisas38、str.swapcase()#对大小写进行转换,大写转小写,小写转大写print('wwamyNameisAsww'.swapcase() )输出:WWAMYnAMEISaSWW39、str.title()#返回一个每个单词首字母都大写的字符串 print('ww my Name is Asww'.title() )输出:Ww My Name Is Asww40、str.translate(table)#返回一个经翻释的新字符串,参数table为经函数str.maketrans()得出的翻释表。sold = 'abcde'snew = '12345'table = str.maketrans(sold,snew)print('give me a apple'.translate(table))输出:giv5 m5 1 1ppl541、str.upper()#返回一个全是大写字母的字符串 print('ww my Name is Asww'.upper())输出:WW MY NAME IS ASWW42、str.zfill(width)#返回一个用“0”去添补,总宽度为参数:width为字符串,如果原字符串的开头是“+”或“一”的话,则“+”或“-”仍放在前面。 print('+ww my Name'.zfill(25))输出:+00000000000000ww my Nameprint('-ww my Name'.zfill(25))输出:-00000000000000ww my Nameprint('ww my Name'.zfill(25))输出:000000000000000ww my Name