写条记也是一件苦逼事。

str是在利用Python中,最常用的操为难刁难象,闇练节制str的各种操作函数和工具,对理解Python程序,提升编程技巧等具有莫大的好处。

首先强调一下,字符串工具是不可改变的,类似的类型如元组,也是在创立后就不可改变的。
也便是说在python创建一个字符串后,你不能把这个字符中的某一部分改变。
任何的函数改变了字符串后,都会返回一个新的字符串,原字符串在内存中并没有变。

strsubphpPython中字符串str的函数超具体说明年夜全 Java

下面的例子在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